Получение Zend Framework для работы с WAMP - PullRequest
0 голосов
/ 03 февраля 2011

Не уверен, что я делаю что-то не так, все, что я думал, мне нужно было изменить мои настройки PHP ini на

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

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

Спасибо.

Ответы [ 5 ]

2 голосов
/ 03 февраля 2011

Вы не должны добавлять каталог 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'.Это связано с тем, что внутри самой платформы по-прежнему много вызовов require, каждый из которых указывает на Zend/<classname>.

1 голос
/ 04 февраля 2011

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

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

Например, c: \ wamp \ www \ library \ Zend

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

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

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

1 голос
/ 03 февраля 2011

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

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

изменить: это может помочь вам

Проблемы с настройкой php Zend include path

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

0 голосов
/ 03 февраля 2011

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

Если ваша библиотека Zend находится на www /

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

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

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(); без необходимости вручную каких-либо файлов (кроме Loader конечно!)

0 голосов
/ 03 февраля 2011

Установить путь включения:

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

После того, как:

require_once "Zend/Date.php";
...