我是新來的Zend Framework所以也許這個問題很愚蠢..通過模型擴展的Zend Framework自動加載類
我有一個默認分級
網站
| --bootstrap.php
| --application
| --models
| - Item.php
| - ModelAbstract.php
| --...
內Item.php有
<?php
//TODO: trying to remove this require...
require_once('ModelAbstract.php');
class CF_Model_Flower extends CF_Model_Abstract
{
...
裏面 'ModelAbstract.php' 有
<?php
class CF_Model_Abstract
{
...
而且我的應用程序的啓動過程。 PHP看起來像
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'CF',
'basePath' => dirname(__FILE__),
));
return $autoloader;
}
...
如果我刪除'require_once'內部項目.php我得到
Fatal error: Class 'CF_Model_Abstract' not found in /Mysite/application/models/Item.php on line 6
爲什麼?如何在沒有這個require_once的情況下使用自動加載?
實際上,將'ModelAbstract.php'重命名爲'Abstract.php'是有效的。有人可以解釋我爲什麼嗎?
THX
你給了我一個嚴肅的提示,我剛剛將'ModelAbstract.php'重命名爲'Abstract.php',它的工作! 我只是不知道爲什麼: -/ 我認爲命名空間用於前綴類的前綴從Zend_Application_Module_Autoloader從'basePath'檢查一些默認資源,即在'模型'目錄中,它將搜索像「CF_Model_XXX」類。我認爲文件名在這種情況下毫無意義。 – 2010-01-20 15:39:33