2013-02-23 4 views
1

Je développe un site avec zend framework. J'utilise autoload pour charger une classe. il fonctionne sur le contrôleur, sur le modèle mais ne fonctionne pas dans le fichier d'amorçage. pourquoi?Zend autoload ne fonctionne pas dans bootstrap

bootstrap.php

protected function _initAutoload() 
    { 
     // Add autoloader empty namespace 
     $autoLoader = Zend_Loader_Autoloader::getInstance(); 
     $resourceLoader = new Zend_Loader_Autoloader_Resource(
       array('basePath' => APPLICATION_PATH, 'namespace' => '', 
         'resourceTypes' => array(
           'form' => array('path' => 'forms/', 'namespace' => 'Form_'), 
           'model' => array('path' => 'models/', 'namespace' => 'Model_'), 
           'plugin' => array('path' => 'plugin/', 'namespace' => 'Plugin_')))); 
     // viene restituto l'oggetto per essere utilizzato e memorizzato nel bootstrap 
     return $autoLoader; 
    } 
    /** 
    * inizializza l'autenticazione 
    */ 
    protected function _initAuth() 
    { 
     $this->bootstrap("db"); 
     $this->bootstrap("Autoload"); 
     $db = $this->getPluginResource('db')->getDbAdapter(); 
     $adp = new Zend_Auth_Adapter_DbTable($db); 
     $adp->setTableName(USERS_TABLE) 
     ->setIdentityColumn('username') 
     ->setCredentialColumn('password') 
     ->setCredentialTreatment('sha1(?)'); 
     $storage = new Model_Sessions(false, $db);//line 81 
     $auth = Zend_Auth::getInstance(); 
     $auth->setStorage($storage); 
     //$this->bootstrap('log');$log=$this->getResource('log'); 
     if ($auth->hasIdentity()) { 
      $identity = $auth->getIdentity(); 
      $user = $identity->user_id; 
     } else 
      $user = 1; 
     $user = new Model_user($user); 
    } 

erreur de sortie

erreur irrécupérable: les Model_Sessions de «classe ne trouve pas dans la ligne 81 /application/Bootstrap.php

dans session.php

<?php 
/** 
* @method get($k,$dv=FALSE) 
*/ 
class Model_Sessions implements Zend_Auth_Storage_Interface 
{ 

Répondre

3

Votre chargeur automatique de ressources semble bon.

Je suppose que vous voulez Model_Sessions, pas Model_sessions (pas de majuscules/minuscules sur les "sessions").

Assurez-vous que la classe Model_Sessions est stockée dans le fichier application/models/Sessions.php

Comme une note de côté, vous avez votre chargeur automatique de ressources à la recherche de plugins avec le préfixe d'espace de noms plugins_. Encore une fois, ici, je suppose que vous voulez en majuscule Plugins_.

+0

J'ai changé le nom mais cela ne fonctionne pas dans le bootstrap. – pagliaccio