Я установил Zend Framework и мне нужно настроить include-путь в PHP? - PullRequest
0 голосов
/ 17 января 2009

Я сбросил файлы Zend Framework в

"главная / hotbuzz / public_html / включить / Zend /"

Мой хостинг: linux

Я хочу загрузить его в свой скрипт. Всякий раз, когда я загружаю, я получаю эту ошибку.

Некоторая информация: я спрашивал о моем Zend'е, о тех, кто сказал, что он находится в "usr / local / zend"

Но я хочу использовать этот дом / hotbuzz / public_html / include / zend /

Я добавил эти строки в моем PHP:

set_include_path(dirname(__FILE__).';'.get_include_path());
require_once 'Zend/Loader.php';

Я получаю эту ошибку

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Exception.php' (include_path='/home/hotbuzz/public_html/include;.:/usr/lib/php:/usr/local/lib/php') in /home/hotbuzz/public_html/include/Zend/Loader.php on line 87

Я хочу установить путь включения в моем коде PHP и настроить его (.htaccess).

Ответы [ 4 ]

11 голосов
/ 17 января 2009

Как я уже говорил в вашем предыдущем вопросе. Не использовать ';' но используйте PATH_SEPARATOR. Это константа PHP, представляющая правильный разделитель для вашей системы (точка с запятой в Windows и точка с запятой в Linux)

set_include_path(dirname(__FILE__).PATH_SEPARATOR.get_include_path());
3 голосов
/ 17 января 2009

Вы все делали правильно. Вы должны вызвать set_include_path в первых строках вашего основного скрипта (index.php), а затем включить / требовать файлы Zend Framework. Не забудьте переименовать папку, содержащую Zend Framework, в «Zend» (верхний регистр Z), чтобы выполнить преобразования имен ZF, а затем поместить папку Zend в каталог include.

<?php
$newIncludePath = array();
$newIncludePath[] = '.';
$newIncludePath[] = 'include';
$newIncludePath[] = get_include_path();
$newIncludePath = implode(PATH_SEPARATOR, $newIncludePath);
set_include_path($newIncludePath);
// now include path is setup and we can use zend
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoLoad('Zend_Loader', true);
// the rest of the code
?>

Если вы поместили свой каталог Zend в свой путь включения, а не в каталог включения (содержащий каталог Zend), вы не можете использовать это:

require_once 'Zend/Loader';

вместо этого вы должны использовать:

require_once 'Loader';

что не очень хорошая идея. Используя модель Zend / *, вы будете помнить, какие файлы включены в Zend Framework и какие файлы принадлежат вам. так что просто добавьте каталог включения в ваш путь включения.

0 голосов
/ 01 октября 2010

Вы можете прикрепить следующий код в первой строке вашего bootstrap.php:

set_include_path('.' . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . '../application/models/' . PATH_SEPARATOR . get_include_path());
0 голосов
/ 17 января 2009

Вы можете добиться большего успеха, если будете использовать auto_prepend, а не включать ...

php_value include_path /home/hotbuzz/public_html/include/zend/
php_value auto_prepend_file Zend/Loader.php

Что вы получаете в журнале apache при запуске и выполнении с этим?

...