這一篇?jiǎng)?chuàng)新互聯(lián)跟大家分享一下PhalconCMS多模塊的代碼組織。在PhalconCMS中有“前臺(tái)(app/frontend目錄)”和“后臺(tái)(app/backend目錄)”兩個(gè)模塊,分別對(duì)應(yīng)著訪客和管理員的用戶群體。下面創(chuàng)新互聯(lián)程序開發(fā)團(tuán)隊(duì)直接通過代碼來分析。
多模塊文件加載
在“app/core/loader.php”文件中,對(duì)“前臺(tái)模塊”和“后臺(tái)模塊”的“controllers”、“models”文件目錄進(jìn)行加載。這里是用的命名空間加載(registerNamespaces)方式,也可以用自動(dòng)加載(registerDirs)來處理。
DI注冊服務(wù)
私有服務(wù)
在“app/frontend/FrontendModule.php”和“app/Backend/BackendModule.php”文件中分別向DI注冊前臺(tái)和后臺(tái)模塊所需的"dispathcer調(diào)度器服務(wù)"、“url服務(wù)”以及“view模板服務(wù)”。這里需要注意的是,前后臺(tái)的“dispatcher調(diào)度器服務(wù)”中設(shè)置的“默認(rèn)調(diào)度器”是不一樣的:
同理,前后臺(tái)的“url服務(wù)”中設(shè)置的"URL前綴"也是不一樣的。這是為了在程序中調(diào)用生成URL的方法($url->get("test/test");)時(shí),自動(dòng)根據(jù)當(dāng)前模塊來設(shè)置URL的前綴:
公用服務(wù)
在“app/core/services.php”文件中向DI注冊多模塊共用的公用服務(wù),如路由服務(wù)、數(shù)據(jù)庫連接服務(wù)、緩存服務(wù)、日志服務(wù)等等。多模塊的路由服務(wù)如下:
"app/config/routes.php"中設(shè)置的路由規(guī)則如下:
注冊多模塊
以上步驟完成之后,后在"app/public/index.php"中注冊多模塊:
至此,PhalconCMS的多模塊就能正常運(yùn)行了。在瀏覽器中訪問帶有“/admin/”前綴的URL,"dispatcher調(diào)度服務(wù)"就能將請求URL分發(fā)到后臺(tái)的控制器中("app/backend/controllers"),其他的URL請求,就默認(rèn)分發(fā)到前臺(tái)控制器("app/frontend/controllers")。
以上貼的都是代碼片斷,具體代碼可以與創(chuàng)新互聯(lián)程序開發(fā)團(tuán)隊(duì)交流。
網(wǎng)站題目:PhalconCMS系統(tǒng)源碼解析之多模塊
文章路徑:http://jinyejixie.com/news18/211718.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站營銷、品牌網(wǎng)站制作、微信公眾號(hào)、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)