2010-12-17 56 views
0

我怎麼可以設定自動加載,這樣我可以有我喜歡的Zend Framework 1.11 +學說2積分:自動加載模型的模型/ user.php的 - >型號用戶

/application 
    /models <<--- plural 
    ... 

目錄結構和具有的Zend /學說自動裝彈機加載Application\Model\User。注意模型是單數。

目前我有自動加載設置如下(Bootstrap.php _initDoctrine()

$zendAutoloader = Zend_Loader_Autoloader::getInstance(); 

// Symfony 
$autoloader = array(new ClassLoader('Symfony'), 'loadClass'); 
$zendAutoloader->pushAutoloader($autoloader, 'Symfony\\'); 

// Doctrine 
$autoloader = array(new ClassLoader('Doctrine'), 'loadClass'); 
$zendAutoloader->pushAutoloader($autoloader, 'Doctrine\\'); 

// Models 
$autoloader = array(new ClassLoader('Application\\Model', realpath(__DIR__ . '/models')), 'loadClass'); 
$zendAutoloader->pushAutoloader($autoloader, 'Application\\Model'); 

// Proxies 
$autoloader = array(new ClassLoader('Application\\Model\\Proxy', realpath(__DIR__ . '/models/proxies')), 'loadClass'); 
$zendAutoloader->pushAutoloader($autoloader, 'Application\\Model\\Proxy'); 

目前,當我嘗試使用Application\Model\User,我得到

require(D:\Projects\Tickle\application\models\Application\Model\User.php): failed to open stream: No such file or directory

其努力包括application\models\Application\Model\User.php 。這比我預想的更深。我怎樣才能解決它呢?

回答

2

嘗試:

$modelsClassLoader = new ClassLoader('Application\Model', __DIR__ . '/models'); 
$modelsClassLoader->register(); 
0

我解決了這個是使用學說的自動裝彈機/ ClassLoader,而不是Zend的

// disable Zend Autoloader 
spl_autoload_unregister(array('Zend_Loader_Autoloader','autoload')); 

// use Doctrine2's Class Loader 
$autoloader = new ClassLoader('Zend'); 
$autoloader->setNamespaceSeparator('_'); 
$autoloader->register(); 

// Symfony 
$autoloader = new ClassLoader('Symfony'); 
$autoloader->register(); 

// Doctrine 
$autoloader = new ClassLoader('Doctrine'); 
$autoloader->register(); 

// Application 
$autoloader = new ClassLoader('Application', realpath(__DIR__ . '/..')); 
$autoloader->register(); 

我的錯誤1,我應該使用realpath(__DIR__ . '/..')的樣子與我的目錄結構,...

/Tickle (Project name) 
    /application 
     /models 
      /proxies 
... 

指向「發癢」,s o當教義附加路徑「Application/Models/User.php」時,它看起來像「/Tickle/Application/Models/Users.php」,它存在於