У меня была именно эта проблема, и она была вызвана двумя установками Zend-Framework на моей машине. Zend-frameworks состоит в основном из двух частей:
- набор php-файлов, которые вы можете использовать, вызывать, расширять и т. Д. В своем приложении Zend.
- набор команд, в основном zf.sh/zf/zf.php/zf.bat.
Если вы используете команду zf из другой версии / установки / ... zend, чем классы, доступные через include_path в вашей php-конфигурации, вы рискуете несовместимыми файлами, создаваемыми командой zf. Несовместимые значения они предполагают определенный набор классов с определенным планом. Это предположение, конечно, легко нарушается в этом случае.
Чтобы это исправить, найдите, где установлена ваша zf-команда, в linux / osx:
justin:~ herbert$ which zf
/usr/share/zend-framework/bin//zf
justin:~ herbert$
в Windows: используйте проводник Windows и выполняйте поиск (не стесняйтесь комментировать, я не знаю, как работает Windows)
БУДЬ ОЧЕНЬ Тщательным в вашем поиске !!! Возможно, 'which' говорит вам, что ваш исполняемый файл находится в '/ usr / bin / zf', но это может быть символическая ссылка. Следуйте по нему и найдите реальное местоположение.
Так что в моем случае он находится в / usr / share / zend-framework / bin /, тогда Zend-установка zf находится в / usr / share / zend-framework / (возможно, я понятия не имею, дистрибутив как убунту с этим).
Так или иначе, php-файлы, используемые вашим проектом, находятся в / usr / share / zend-framework / library / (так что подкаталог library). Сообщите об этом php, отредактировав php.ini (/ etc / ... /php.ini):
include_path = "/usr/share/zend-framework/library/"
Окончательно перезагрузите ваш apache
apachectl restart
Примечание:
как найти несколько установок Zend Framework:
justin:~ herbert$ updatedb (or on osx: /usr/libexec/locate.updatedb)
justin:~ herbert$ locate Zend/Application.php
Любой из каталогов с Zend / Application.ini «может быть» Zend Frameworks;)