我正在使用带有log4php和smarty的zend框架,我在尝试运行zend的引导时遇到了以下问题。
这是我得到的错误:
PHP Warning: require_once(Smarty.php): failed to open stream:
No such file or directory in /var/www/html/kb/vaserver/VaDaemon/config.php on line 37 pid
6049
Fatal error: require_once(): Failed opening required 'Smarty.php'
我认为我的问题与下面提到的非常相似,但是这个错误已经解决并修复了,我看到的修复与James在那里写的相似。无论如何,这是不工作,你可以看到,所以我想知道我应该尝试什么。
下面是我的config.php代码:/* **
date_default_timezone_set('Etc/UTC');
// The custom error handlers that ship with PHP Simple Daemon respect all PHP INI error settings.
ini_set('error_log', '/var/log/phpcli');
ini_set('display_errors', 0);
// Define a simple Auto Loader:
// Add the current application and the PHP Simple Daemon ./Core library to the existing include path
// Then set an __autoload function that uses Zend Framework naming conventions.
define("VA_BASE_PATH", dirname(__FILE__));
set_include_path(implode(PATH_SEPARATOR, array(
realpath(VA_BASE_PATH . '/AbstractLayer/'),
realpath(VA_BASE_PATH),
realpath(VA_BASE_PATH . '/../'),
realpath(VA_BASE_PATH . '/../Core'),
get_include_path(),
)));
function vaDaemon_Autoloader($class_name)
{
$class_name = str_replace('\', '/', $class_name);
$class_name = str_replace('_', '/', $class_name);
require_once "$class_name.php"; // **line 37 as mentioned above in error**
}
spl_autoload_register('vaDaemon_Autoloader');
function pathify($class_name) {
return str_replace("_", "/", $class_name) . ".php";
}
假设您使用Composer安装了ZF2,那么如果您同时安装log4php和Smarty,将使您的工作更轻松。更新您的composer.json
并添加更新您现有的require部分,以添加其他两个库:
"require": {
"apache/log4php": "2.3.0",
"smarty/smarty": "3.1.19"
}
然后执行php composer.phar install
。然后composer可以处理自动加载,你不需要做任何包含路径或spl_autoload_register()
。