Ошибка маршрута после переноса проектов Zend из Windows в Linux - PullRequest
0 голосов
/ 22 августа 2010

Когда я переношу свое приложение Zend Framework из Windows (ZF 1.10.3) в Linux (ZF.10.7) некоторые контроллеры работают нормально, но некоторые показать это исключение

Fatal error: Undefined class constant 'EXCEPTION_NO_ROUTE' in /path/to/application/modules/default/controllers/ErrorController.php on line 11

/ контроллеры
VideoController.php
/ Вид
/ Скрипты
/ Видео
index.phtml

VideoController.php

class VideoController extend Zend_Controller_Action
{
  public indexAction(){}
}

Викан, что не правильно?

Ответы [ 3 ]

1 голос
/ 22 августа 2010

Решены просто прокомментируйте в контроллере ошибок по умолчанию case:NO_ROUTE

0 голосов
/ 13 июня 2012

У меня была именно эта проблема, и она была вызвана двумя установками 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;)

0 голосов
/ 01 сентября 2011

Мне пришлось добавить в файл Zend/Controller/Plugin/ErrorHandler.php

Вокруг строки 50 определены другие типы исключений.Я добавил в файл следующее:

 /**
 * Const - No Route Exception; cannot find route to target
 */
const EXCEPTION_NO_ROUTE = 'EXCEPTION_NO_ROUTE';

Не уверен, почему это используется в Framework, но не определено ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...