2010-06-05 4 views
0

J'ai une application ZF simple (pas de modules) qui fonctionne correctement lorsque je classe require avant de les utiliser. Cependant, je voudrais utiliser l'autochargeur ZF pour les charger automatiquement (ce que je supposais être le comportement par défaut).Utilisation de l'autoloader ZF pour charger les modèles

Comment ferais-je cela? Je suis un peu confus par la nouvelle (ish) Zend_Application façon de faire les choses. Ma structure de répertoire est le standard:

application/ 
    controllers/ 
    models/ 
    views/   
    scripts/ 
    Bootstrap.php 

Par exemple enlever le besoin dans cette méthode:

class HomeController extends Zend_Controller_Action { 
    public function indexAction() { 
     $tasks = array(); 

     //require 'models/Task.php'; 
     $tasks[] = new Application_Model_Task(array(...)); 
    } 
} 
+0

Avez-vous utilisé l'outil de ligne de commande "zf" pour créer l'application ou avez-vous suivi la structure de répertoires habituelle et créé les éléments manuellement? – Alistair

+0

question connexe http://stackoverflow.com/questions/2974996/zend-not-autoloading-models – robertbasic

+0

@Alistair J'ai utilisé zf – Ross

Répondre

3

Si vous utilisez la version Frame Zend 1.8 (+) mis dans votre Bootstrap.php:

/** 
    * Initialize the autoloader 
    * 
    * @return Zend_Application_Module_Autoloader 
    */ 
    protected function _initAutoload() 
    { 
     $autoloader = new Zend_Application_Module_Autoloader(array(
       'namespace' => 'My', 
       'basePath' => dirname(__FILE__), 
     )); 

     return $autoloader; 
    } 

Et maintenant essayer:

$model = new My_Model_Task(); 
+0

J'ai remplacé mon avec application et cela a fonctionné parfaitement - merci! – Ross

+0

bien! vous pouvez également remplacer "Application" par "", et utiliser: new Model_Task() – opHASnoNAME

Questions connexes