我已经在我的wamp服务器中安装了Zend Framework。
以下是我php.ini
的一部分:
; Windows: "\path1;\path2"
include_path = ".;C:\ZendFramework\library\"
以下是我的application.ini
文件的一部分:
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
每当我尝试扩展Zend类时,我都需要为该类提供路径。
例如,我需要使用Zend_Db_Adapter_Pdo_Mysql
类,但Zend studio会发出警告Call to undefined function
。我尝试使用MySql.php
包含require_once 'Zend/Db/Adapter/Pdo/Mysql.php';
类,但警告仍然存在。然后我尝试了这样:require_once APPLICATION_PATH.'/../library/Zend/Db/Adapter/Pdo/Mysql.php';
但最终没有成功。
此外,每当我尝试使用由我开发的类时,我必须提供绝对路径,如:require APPLICATION_PATH.'/models/myClass.php';
。否则它说没有找到班级。
为什么会这样?有什么我需要配置更多吗?
修改
我的ZF库位于我项目的库文件夹中。
我的index.php
:
<?php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/* function _initView()
{
$view = new Zend_View();
$view->addScriptPath(APPLICATION_PATH . '/views/scripts/');
} */
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
->run();
我的bootstrap.php
:
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initDbRegister()
{
$db = $this->bootstrap('Db')->getResource('Db');
Zend_Registry::set('Zend_db', $db);
return $db;
}
protected function _initSession(){
Zend_Session::start();
}
}