2013-02-23 2 views
1

Я разрабатываю сайт с картой zend. Я использую автозагрузку для загрузки класса. он работает на контроллере, на модели, но не работает в файле начальной загрузки. Почему?Zend autoload не работает в 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); 
    } 

Выход ошибки

Фатальная ошибка: 'Model_Sessions' класс не найден в /application/Bootstrap.php на линии 81

в session.php

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

ответ

3

Ваш автозагрузчик ресурсов выглядит хорошо.

Я подозреваю, что вы хотите Model_Sessions, а не Model_sessions (не нижний/верхний регистр на «сеансах»).

Убедитесь, что класс Model_Sessions хранится в файле application/models/Sessions.php

Как примечание стороны, у Вас есть свой ресурс автозагрузчик ищет плагин с префиксом пространства имен plugins_. Опять же, здесь, я подозреваю, что вы хотите заглавные Plugins_.

+0

У меня есть имя, но оно не работает в bootstrap. – pagliaccio

Смежные вопросы