这一篇创新互联跟大家分享一下PhalconCMS多模块的代码组织。在PhalconCMS中有“前台(app/frontend目录)”和“后台(app/backend目录)”两个模块,分别对应着访客和管理员的用户群体。下面创新互联程序开发团队直接通过代码来分析。
多模块文件加载
在“app/core/loader.php”文件中,对“前台模块”和“后台模块”的“controllers”、“models”文件目录进行加载。这里是用的命名空间加载(registerNamespaces)方式,也可以用自动加载(registerDirs)来处理。
![成都网站建设](/upload/pic19/20170104144854_5003.png)
DI注册服务
私有服务
在“app/frontend/FrontendModule.php”和“app/Backend/BackendModule.php”文件中分别向DI注册前台和后台模块所需的"dispathcer调度器服务"、“url服务”以及“view模板服务”。这里需要注意的是,前后台的“dispatcher调度器服务”中设置的“默认调度器”是不一样的:
![成都网站建设](/upload/pic19/20170104144908_1878.png)
同理,前后台的“url服务”中设置的"URL前缀"也是不一样的。这是为了在程序中调用生成URL的方法($url->get("test/test");)时,自动根据当前模块来设置URL的前缀:
![成都网站建设](/upload/pic19/20170104144921_9691.png)
公用服务
在“app/core/services.php”文件中向DI注册多模块共用的公用服务,如路由服务、数据库连接服务、缓存服务、日志服务等等。多模块的路由服务如下:
![成都网站建设](/upload/pic19/20170104144935_8284.png)
"app/config/routes.php"中设置的路由规则如下:
![成都网站建设](/upload/pic19/20170104144951_2659.png)
注册多模块
以上步骤完成之后,后在"app/public/index.php"中注册多模块:
![成都网站建设](/upload/pic19/20170104145007_3597.png)
至此,PhalconCMS的多模块就能正常运行了。在浏览器中访问带有“/admin/”前缀的URL,"dispatcher调度服务"就能将请求URL分发到后台的控制器中("app/backend/controllers"),其他的URL请求,就默认分发到前台控制器("app/frontend/controllers")。
以上贴的都是代码片断,具体代码可以与创新互联程序开发团队交流。
分享名称:PhalconCMS系统源码解析之多模块
浏览路径:https://www.cdcxhl.com/news/211718.html
成都网站建设公司_创新互联,为您提供做网站、品牌网站制作、电子商务、网站导航、网站建设、网站设计
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联