我使用zend框架开发一个站点。 我使用自动加载来加载一个类。 它适用于控制器,模型但不能在引导程序文件中工作。 为什么呢?
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);
}
输出错误
致命错误:第81行的/application/Bootstrap.php中找不到“Model_Sessions”类
在Session.php中
<?php
/**
* @method get($k,$dv=FALSE)
*/
class Model_Sessions implements Zend_Auth_Storage_Interface
{
答案 0 :(得分:3)
您的资源自动加载器看起来不错。
我怀疑你想要Model_Sessions
,而不是Model_sessions
(不是“会话”的低级/大写)。
确保课程Model_Sessions
存储在文件application/models/Sessions.php
作为旁注,您的资源自动加载器正在查找名称空间前缀为plugins_
的插件。再次,在这里,我怀疑你想要大写Plugins_
。