В настоящее время я занимаюсь локализацией проекта с помощью Zend_Translate. При попытке использовать адаптер в php-файле, запрошенном вызовом ajax, я получаю следующее сообщение об ошибке:
Warning: require_once(Zend/Exception.php): failed to open stream:
File or Folder not found in
/my/include/path/Zend/Translate/Exception.php on
line 26
Fatal error: require_once(): Failed opening required
'Zend/Exception.php' (include_path='my/include/path') in
/my/include/path/Zend/Translate/Exception.php on
line 26
Таким образом, это кажется проблемой относительного пути. Меня особенно смущает ошибка 'require_once(Zend/Exception.php)', поскольку в основной папке Zend такого файла нет, однако, как было сказано ранее, не-ajax-вызовы работают нормально.
Я попытался использовать операторы if, чтобы проверить, откуда вызывается файл, и соответствующим образом настроить include_path. Это, по крайней мере, позволило следующим строкам работать как в вызовах ajax, так и в вызовах без ajax.
require(get_include_path().'/Zend/Translate.php');
Zend_Loader::loadClass('Zend_Translate');
Однако вышеупомянутые ошибки сохраняются.
Zend загружается из класса-оболочки. Вот структура пути:
class/ class files, including a Zend wrapper class
js/ js-files
js/ajax/ php-files
vendor/Zend/... Zend_Translate files
Дайте мне знать, если дополнительная информация окажется полезной.