paozhu框架内置了SAAS模式支持,目前可以是ID多租户模式和域名隔离模式,后台有一个简单管理多租户管理页面,也可以多虚拟主机模式,就是域名隔离。 这种模式可以其他方式呈现,比如类似微服务模式,controller/src
创建目录如果类似域名,就是中间有一个点,那么这个目录独立注解函数。
比如我们在 controller/src
创建aaa.com
bbb.com
两个目录,他们都有news注解函数,实现功能有所不同
这种模式可以管理复杂大型项目,而且还是单体模式,更多使用方式可能等熟悉后自己自由发挥。
先配置 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
使用方法在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
这样实现动态更换主题