paozhu框架 SAAS开发模式

中文 English

paozhu框架内置了SAAS模式支持,目前可以是ID多租户模式和域名隔离模式,后台有一个简单管理多租户管理页面,也可以多虚拟主机模式,就是域名隔离。 这种模式可以其他方式呈现,比如类似微服务模式,controller/src 创建目录如果类似域名,就是中间有一个点,那么这个目录独立注解函数。

比如我们在 controller/src 创建aaa.com bbb.com两个目录,他们都有news注解函数,实现功能有所不同

这种模式可以管理复杂大型项目,而且还是单体模式,更多使用方式可能等熟悉后自己自由发挥。

SAAS开发模式配置

先配置 conf/server.conf 假设 cn.aaa.com 域名 配置SAAS模式


        [cn.aaa.com]
        wwwpath=/www/user/www/aaa
        http2_enable=1
        upload_max_size=16777216
        siteid=9
        groupid=0
        alias_domain=aaa.com
        themes=cn
        

wwwpath 就是cn.aaa.com 域名www根目录,这个可以手动创建或由超级后台创建,详见cppcms数据库 superadmin 表,里面 basesitepath 字段表示本超级管理员名下多租户基本目录。

http2_enable=1 表示开启http/2

upload_max_size=16777216 表示上传文件最大为16M

siteid=9 就是有超级管理员创建产生的ID,详见cppcms数据库 siteinfo表,里面 userid 字段

groupid=0 是备用的,预设分组用

alias_domain=aaa.com 默认为空不用设置,表示使用 controller/src 目录下 aaa.com 目录下注解函数,如果没有会使用框架默认带的注解函数,其它域名也可以使用这个目录下注解函数,只要同样alias_domain=aaa.com设置

themes=cn 表示使用view目录下cn目录

themes_url= 表示访问themes图片等资源的url

SAAS模式使用

使用方法在httppeer.h定义

 
    std::string get_sitepath();
    unsigned long long get_siteid();
    unsigned long long get_groupid();
    std::string get_theme();
    std::string get_themeurl();
    void theme_view(const std::string &a);
          

使用方法例子,在注解函数中使用

 
//@urlpath(null,articles)
std::string front_article(std::shared_ptr<httppeer> peer)
{
  unsigned int userid=peer->get_siteid();
  peer->theme_view("front/articlelist");
}
          

peer->theme_view("front/articlelist"); 前面我们设置了 themes=cn theme_view 使用view/cn/front/articlelist.html视图文件

主要特性1:controller/src 创建aaa.com 目录,如果不使用alias_domain=aaa.com设置 是无法使用的,这样方便大型项目使用

主要特性2:peer->theme_view("front/articlelist"); 自动设置视图,方便管理员在后台设置themes=cn 这样实现动态更换主题

Docs