摘要:原文發(fā)表于入門(mén)教程之目錄結(jié)構(gòu)很多初學(xué)的朋友,對(duì)于以框架為基礎(chǔ)構(gòu)建的項(xiàng)目,應(yīng)該如何組織目錄結(jié)構(gòu)有點(diǎn)摸不著頭腦。只需要通過(guò)注冊(cè)這些目錄結(jié)構(gòu),即可正常使用。
原文發(fā)表于:Phalcon入門(mén)教程之目錄結(jié)構(gòu)
很多初學(xué)Phalcon的朋友,對(duì)于以Phalcon框架為基礎(chǔ)構(gòu)建的項(xiàng)目,應(yīng)該如何組織目錄結(jié)構(gòu)有點(diǎn)摸不著頭腦。比如多模塊的項(xiàng)目中,如何共用"libs"類(lèi)庫(kù)和“models”目錄中模型類(lèi)的情況,就有很多剛接觸Phalcon朋友經(jīng)常在群里問(wèn)這種問(wèn)題。
我們?cè)诜哖halcon文檔的時(shí)候,會(huì)看到"教程2:INVO簡(jiǎn)介"中有一個(gè)項(xiàng)目結(jié)構(gòu)的demo,其中總結(jié)到“Phalcon不會(huì)強(qiáng)求應(yīng)用程序使用特定的文件結(jié)構(gòu)”。那么,Phalcon通過(guò)什么形式來(lái)加載這些可以任意組織的目錄結(jié)構(gòu)呢?
下面以PhalconCMS的代碼為例來(lái)進(jìn)行講解。
PhalconCMS目錄結(jié)構(gòu)PhalconCMS/ app/ backend/ controllers/ models/ repositories/ views/ cache/ config/ core/ frontend/ controllers/ models/ repositories/ views/ helpers/ libs/ service/ tasks/ crontab/ public/加載目錄結(jié)構(gòu)
PhalconCMS中是通過(guò)“注冊(cè)命名空間”的方式來(lái)加載目錄結(jié)構(gòu):
$loader = new PhalconLoader(); $loader -> registerNamespaces(array( #注冊(cè)根目錄的命名空間 "Marser" => ROOT_PATH, #注冊(cè)共享目錄的命名空間 "MarserAppCore" => ROOT_PATH . "/app/core", "MarserAppHelpers" => ROOT_PATH . "/app/helpers", "MarserAppLibs" => ROOT_PATH . "/app/libs", "MarserAppService" => ROOT_PATH . "/app/service", "MarserAppTasks" => ROOT_PATH . "/app/tasks", #注冊(cè)前臺(tái)目錄的命名空間 "MarserAppFrontendControllers" => ROOT_PATH . "/app/frontend/controllers", "MarserAppFrontendModels" => ROOT_PATH . "/app/frontend/models", "MarserAppFrontendRepositories" => ROOT_PATH . "/app/frontend/repositories", #注冊(cè)后臺(tái)目錄的命名空間 "MarserAppBackendControllers" => ROOT_PATH . "/app/backend/controllers", "MarserAppBackendModels" => ROOT_PATH . "/app/backend/models", "MarserAppBackendRepositories" => ROOT_PATH . "/app/backend/repositories", )) -> register();
以上代碼請(qǐng)參考:https://github.com/KevinJay/P...
Phalcon框架還提供了另一種目錄加載方式:注冊(cè)文件夾,具體使用方式可以翻閱Phalcon文檔。這里就只介紹命名空間的方式。
通過(guò)以上方式,我們就可以在“backend”和“frontend”兩個(gè)模塊中,共享“l(fā)ibs”、“helpers”等目錄下的操作類(lèi)。在具體使用的時(shí)候,只需要通過(guò)命名空間引入相應(yīng)的操作類(lèi)即可。比如我們?cè)?app/backend/controllers/ArticlesController.php"控制器中需要使用“app/helpers/PaginatorHelper.php”操作類(lèi):
use MarserAppHelpersPaginatorHelper;
在PhalconCMS多模塊結(jié)構(gòu)中,“backend”和“frontend”都是多帶帶操作各自的“models”目錄。如果我們想要實(shí)現(xiàn)多模塊共享"models"目錄,那么可以將“models”目錄提到“app”目錄下,并修改注冊(cè)命名空間中的路徑。在調(diào)用時(shí),還是通過(guò)命名空間的方式引入即可。
總結(jié)就像文檔中說(shuō)的“Phalcon不會(huì)強(qiáng)求應(yīng)用程序使用特定的文件結(jié)構(gòu)”,我們可以根據(jù)業(yè)務(wù)需要,或者開(kāi)發(fā)習(xí)慣,自由組織我們的項(xiàng)目目錄結(jié)構(gòu)。只需要通過(guò)"Autoloader"注冊(cè)這些目錄結(jié)構(gòu),即可正常使用。
最后,歡迎大家加入QQ群交流討論:
廣州PHP高端交流群:158587573
Phalcon玩家群:150237524
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22465.html
摘要:原文發(fā)表于入門(mén)教程之模型提供了四種方式操作數(shù)據(jù)庫(kù)模型數(shù)據(jù)庫(kù)抽象層以及原生。創(chuàng)建模型模型類(lèi)的命名必須符合駝峰命名法,而且須繼承自類(lèi)文件路徑繼承自類(lèi)。 原文發(fā)表于:Phalcon入門(mén)教程之模型 Phalcon 提供了四種方式操作Mysql數(shù)據(jù)庫(kù):模型、PHQL、數(shù)據(jù)庫(kù)抽象層以及原生SQL。不論何種方式,首先都需要在DI中注冊(cè) db 服務(wù)才能正常使用: DI注冊(cè)db服務(wù) // 文件路徑:...
摘要:若在云服務(wù)器上安裝失敗或者卡住,可參考此博文云服務(wù)器編譯安裝失敗 Phalcon安裝 # 下載安裝包 wget https://github.com/phalcon/cphalcon/archive/v3.0.1.tar.gz # 重命名 mv v3.0.1.tar.gz cphalcon-3.0.1.tar.gz #解壓 tar -zxvf...
摘要:初次認(rèn)識(shí)是在剛學(xué)的時(shí)候最近終于有機(jī)會(huì)用上了故此說(shuō)說(shuō)使用上的一些感受個(gè)人是很喜歡這套框架的方式使用依賴(lài)注入讓代碼組織很靈活耦合也很低但是也許是框架東西太多了遇到幾個(gè)坑上一年以上的也還沒(méi)解決不過(guò)有一定開(kāi)發(fā)經(jīng)驗(yàn)的話還是可以自己修復(fù)的被這幾個(gè)坑浪費(fèi) 初次認(rèn)識(shí)phalcon是在剛學(xué)php的時(shí)候,最近終于有機(jī)會(huì)用上了.故此說(shuō)說(shuō)使用上的一些感受 個(gè)人是很喜歡phalcon這套框架的方式,使用...
摘要:在框架中使用自定義的類(lèi)是再常見(jiàn)不過(guò)的事情,框架套路大多一致。這里說(shuō)下中,使用自定義類(lèi)的方法。 在框架中使用自定義的類(lèi)是再常見(jiàn)不過(guò)的事情,框架套路大多一致。這里說(shuō)下Phalcon中,使用自定義類(lèi)的方法。 1.創(chuàng)建一個(gè)目錄 路徑可以放在app下也可以放在根目錄下,譬如,放在根目錄下,文件夾名叫demo 2.注冊(cè)命名空間 不知道命名空間為何物的自行Google,打開(kāi)app/config/l...
摘要:幫助你開(kāi)始使用的簡(jiǎn)易指南。第一種方式參考第二種方式參考使用參考簡(jiǎn)單粗暴的理解是把下的對(duì)應(yīng)成數(shù)據(jù)庫(kù)的表,類(lèi)屬性對(duì)應(yīng)表字段。 幫助你開(kāi)始使用 phalcon 的簡(jiǎn)易指南。 簡(jiǎn)介 Phalcon 2將于2015年4月17日發(fā)布,這個(gè)版本大約85%的代碼是基于 Zephir 語(yǔ)言重寫(xiě)的。Zephir是開(kāi)源的,使用類(lèi)似PHP語(yǔ)法的語(yǔ)言,生成C語(yǔ)言代碼,并編譯成PHP擴(kuò)展。這提高了PHP擴(kuò)展的開(kāi)發(fā)...
閱讀 1731·2023-04-25 23:43
閱讀 908·2021-11-24 09:39
閱讀 713·2021-11-22 15:25
閱讀 1710·2021-11-22 12:08
閱讀 1085·2021-11-18 10:07
閱讀 2066·2021-09-23 11:22
閱讀 3338·2021-09-22 15:23
閱讀 2470·2021-09-13 10:32