2010-12-17 17 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を使用してみたときに、私はそのはapplication\models\Application\Model\User.phpを含めるしようとしている

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

を取得。うーん、私が期待していたよりも激しい。とにかく私はそれを修正できますか?

答えて

2

試してみてください。

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

私はこれを解決する方法ではなく、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をDoctrineのオートローダ/ ClassLoaderを使用していたが、私のディレクトリに私はrealpath(__DIR__ . '/..')を使用すべきであるとされました構造、...

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

「Tickle」、s o doctrineが "Application/Models/User.php"というパスを追加すると、 "/Tickle/Application/Models/Users.php"のように見えます。

関連する問題