2012-05-26 19 views
4

我有一個名爲MathLib.php的自定義類,我需要在這個類中的所有控制器中使用一些登錄。閱讀CakePHP文檔我發現組件是做到這一點的最佳方式。但現在,我有一個問題,我想知道其中是否必須保存MathLib.php類(在哪個文件夾中我必須放置自定義類),以及如何將它加載到組件中。保存自定義類以及如何將其加載到CakePHP組件中?

謝謝!

+0

哪個蛋糕版? – tigrang

+0

當然不是版本3. –

回答

10

如果您編寫了自定義類,則將其放在蛋糕1.x的app\libs中,對於cake 2.x放入app\Lib,否則放入應用程序\ vendors或app \ Vendor中。

將其加載到蛋糕2.X您會在組件類聲明之前添加組件:

App::uses('MathLib', 'Lib'); 

類名和文件名應該是相同的。如果它是一個供應商,同樣的理念,爲1.x的

App::import('Lib', 'MathLib'); 

更多的信息在這裏http://book.cakephp.org/1.3/view/1579/Library-classes

,但閱讀這些文檔:

對於1.x中,你會被加載http://book.cakephp.org/1.3/view/944/Vendor-examples

這是重要的文件命名。

+0

@tjgrang完美!謝謝......但組件內部如何創建對象?正常的方式? $ obj = new MathLib()? – Dail

+1

是的。如果我理解正確,組件本質上是您自定義類的包裝。但我不知道它是否值得。你不能在AppController中導入它,並在那裏實例化它,然後在你的所有控制器中使用。這似乎更容易。 – tigrang

+0

@tjgrang,呃對!我可以在主AppController中導入它,所以它會被使用,但是在AppCntroller中,我只需要使用:App :: uses('MathLib','Lib'),而不在AppController類中做任何事情? – Dail

相關問題