Непонятная ошибка при попытке подключения к Zend с помощью smarty и apache log4php
Я использую Zend Framework с log4php и Smarty, я столкнулся со следующей проблемой при попытке запустить загрузчик 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'
Я думаю, что моя проблема очень похожа на следующее, упомянутое здесь, однако эта ошибка была уже решена и исправлена, и я увидел, что исправление похоже на то, что Джеймс писал там. Во всяком случае, это не работает, как вы можете видеть, поэтому мне интересно, что еще я должен попробовать.
Вот мой код 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";
}
1 ответ
Предполагая, что вы установили ZF2 с помощью Composer, вам будет легче, если вы установите вместе с ним log4php и Smarty. Обновите свой composer.json
и добавьте обновление существующего раздела require, чтобы добавить в него две другие библиотеки:
"require": {
"apache/log4php": "2.3.0",
"smarty/smarty": "3.1.19"
}
Тогда беги php composer.phar install
, Тогда композитор может обрабатывать автозагрузку, и вам не нужно ничего делать с путями включения или spl_autoload_register()
,