2011-02-03 5 views
0

Не уверен, что я делаю неправильно здесь, все, что я думал, что я должен был вниз было изменить мои настройки ини PHP дляПолучение Zend Framework для работы с WAMP

include_path = ".;c:\Program Files (x86)\WAMP\www\Zend\" 

Но это не работает.

На моем сценарии я просто:

require_once "Date.php"; 

Но получить ошибки:

Warning: require_once(Zend/Date/DateObject.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files (x86)\WAMP\www\Zend\Date.php on line 25 

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Date/DateObject.php' (include_path='.;c:\Program Files (x86)\WAMP\www\Zend\') in C:\Program Files (x86)\WAMP\www\Zend\Date.php on line 25 

Любое понимание в то, что я делаю неправильно очень ценится.

Спасибо.

ответ

2

Вы не должны добавить каталог Zend Framework для включения пути. Вы должны добавить родительскую папку к пути включения.

Таким образом, include_path = ".;c:\Program Files (x86)\WAMP\www\Zend\" станет include_path = ".;c:\Program Files (x86)\WAMP\www\".

После того, как вы создали свой путь включения, вы должны использовать require_once 'Zend/Date.php' вместо require_once 'Date.php'. Это связано с тем, что в самой структуре все еще требуется много вызовов, каждый из которых указывает на Zend/<classname>.

1

Ваш путь включает неправильно - вы можете либо определить его вручную или (лучше) изменить php.ini, чтобы добавить местоположение вашего включает в себя ... из милиции

http://www.geeksengine.com/article/php-include-path.html

редактировать: они могут помочь вы

Trouble setting up php Zend include path

http://devzone.zend.com/article/4683

0

Набор включает путь:

include_path = ".;c:\Program Files (x86)\WAMP\www\" 

После:

require_once "Zend/Date.php"; 
0

Вы не должны добавить Zend/каталог для вашего включают путь, но либо корень вашей папки библиотеки:

Если ваша библиотека Zend в WWW/

включаемом путь должен быть: c:\Program Files (x86)\WAMP\www\

Однако, если ZF в Zend/библиотеки/должно быть:

c:\Program Files (x86)\WAMP\www\Zend\library\

Это потому, что файл необходим.

Zend_Date требует Zend/Date/DateObject от Zend /, поэтому вам нужно включить каталог верхнего уровня.

Обратите внимание, что вы также можете использовать автозагрузчик для выполнения работы для вас, если вам нужны другие классы Zf и не хотите включать/требовать их все.

require_once 'Zend/Loader/Autoloader.php'; 
$autoloader = Zend_Loader_Autoloader::getInstance(); 

Позволит вам делать $date = new Zend_Date(); без требуют вручную все файлы (кроме загрузчика конечно!)

1

Все здесь говорит о добавлении в библиотеку, чтобы ваш включать путь. Я не согласен с этим. Большинство хостинг-провайдеров не имеют ZF по пути включения и не позволяют добавить его в один. Итак, зачем это настраивать в вашей среде разработки? только изменить его на производство?

Предлагаю вам создать папку библиотеки в вашем корне; поместите ZF туда и добавьте это в свой ПРИЛОЖЕНИЕ к пути включения.

E.g. C: \ WAMP \ WWW \ Библиотека \ Zend

Тогда для каждого приложения добавить библиотеку в index.php (вы просто пойти еще одна папка вверх):

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(dirname(__FILE__) . '/../../library'), 
    get_include_path(), 
))); 

Это позволяет легко обновлять вашей библиотеки ZF. Он также позволяет вам легко копировать/svn ваши проекты, не включая структуру ZF. Большинство людей имеют свой стиль. Я согласен с большинством, что вы должны включить каталог библиотеки, а не каталог Zend.

Смежные вопросы