Используя Zend Framework без установки его в корневом каталоге сервера? - PullRequest
1 голос
/ 09 августа 2009

Я пытаюсь использовать библиотеку Zend Gbase, но не могу понять, как это сделать, фактически не установив ее в путь PHP.

Сложность возникает из-за желания создать модуль для Drupal, который не ограничен сервером, на котором он установлен, но может получить доступ к библиотеке, установив ее в подпапку модуля.

Кто-нибудь знает, как это сделать? Я попытался включить Zend's Loader и затем загрузить нужные мне классы, но это продолжает выдавать ошибки. НУЖНО ли устанавливать библиотеку на сервере или есть способ обойти это, чтобы она использовалась только в этом приложении?

Это код:


require_once 'library/Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_Gbase');

Я получаю следующие сообщения:

Предупреждение: Zend_Loader :: include (Zend / Gdata / Gbase.php) [zend-loader.include]: не удалось открыть поток: нет такого файла или каталога в / srv / www / ftp-www / tests / gdata / library / Zend / Loader.php в строке 83

Предупреждение: Zend_Loader :: include () [function.include]: не удалось открыть Zend / Gdata / Gbase.php для включения (include_path = '.: / Usr / share / php: / usr / share / pear' ) в /srv/www/ftp-www/tests/gdata/library/Zend/Loader.php в строке 83

Предупреждение: Zend_Loader :: require_once (Zend / Exception.php) [zend-loader.require-Once]: не удалось открыть поток: нет такого файла или каталога в / srv / www / ftp-www / tests / gdata / library / Zend / Loader.php в строке 87

Неустранимая ошибка: Zend_Loader :: require_once () [function.require]: Не удалось открыть обязательный файл 'Zend / Exception.php' (include_path = '.: / Usr / share / php: / usr / share / pear') в /srv/www/ftp-www/tests/gdata/library/Zend/Loader.php в строке 87

Ответы [ 2 ]

6 голосов
/ 09 августа 2009

А как насчет использования set_include_path для настройки include_path , добавив в него каталог, в котором находится код Zend Framework?

Таким образом, вы можете иметь его везде, где захотите - без необходимости изменять include_path в файле конфигурации php.ini.

Например, что-то вроде этого может сделать:

$path = '/PATH_TO_THE_FRAMEWORK/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

Разве это не поможет?

2 голосов
/ 09 августа 2009

Вам необходимо указать, где искать файлы классов. Попробуйте:

Zend_Loader::loadClass('Zend_Gdata_Gbase', 'library/')

Или, возможно, вы захотите установить папку библиотеки в вашем пути включения php

...