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