Непонятная ошибка при попытке подключения к 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(),

Другие вопросы по тегам