2013-10-02 63 views
13

我一直在使用CakePHP了一會兒,我仍然真的不明白什麼應該/Lib去VS /Plugin VS /Vendor。我知道插件基本上都是帶有自己的控制器的迷你應用程序等等。但是在很多情況下,三種都可以。有人可以對此有所瞭解嗎?CakePHP的:我應該在/ lib中去VS /供應商VS /插件

+0

http://stackoverflow.com/questions/24261432/how-to-use-common-function-in-helper-and-component-in-cakephp – trante

回答

22

包含不來自第三方或 外部供應商第一方庫。這使您可以將組織的內部庫與供應商庫分開。

插件

包含plugin包。

供應商

任何第三方類或庫應該放在這裏。 這樣做可以使用App :: import('vendor', 'name')函數輕鬆訪問。敏銳的觀察者會注意到,這似乎是多餘的, 因爲在我們目錄 結構的頂層還有一個vendor文件夾。當我們討論管理多個應用程序和更復雜的系統設置時,我們將討論兩者之間的差異。

來源:http://book.cakephp.org/2.0/en/getting-started/cakephp-folder-structure.html

爲了進一步澄清,Lib建議你自己寫的庫。這可能只是一些課程或整個圖書館。對於可以從github下載的庫或腳本,建議使用VendorPlugin嚴格用於cakephp框架插件。

關於Lib vs Vendor對於您自己的腳本或第三方腳本,我沒有意識到任何區別。我已經在兩個位置都放入了自己的腳本以及第三方腳本,但沒有任何區別。這只是一個推薦的方式來組織你的文件。

您可以使用App::import()加載腳本LibVendor,這與require_once()相同。要加載框架文件或遵循cakephp慣例的自己的腳本,您可以使用App::uses()。這使用使用App::path()App::build()定義的路徑來查找文件。

+0

謝謝!我認爲差異更加清晰。你還介意添加一些關於選擇/ Lib vs Vendor的含義嗎?例如,Vendor中的東西可以通過'App :: import()'來訪問,而Lib的東西似乎需要'App :: uses()'和其他一些配置。我確信,爲什麼他們的實施方式不同,有一個很好的理由,但這對我來說並不明顯。 – emersonthis

+0

根本不明顯。有兩個似乎是多餘的。特別是在Lib和Vendor中訪問文件是完全不同的。 – zmonteca

相關問題