Zend framework (1.7.5): как изменить каталог контроллера

Используя Zend Framework, я хочу использовать контроллеры, хранящиеся в каталоге, который не является каталогом по умолчанию.

Я пытаюсь добиться того, чтобы запрошенный путь начинается с admin / controllers / admin, используется layout / admin, views / admin и т. Д.

Как мне добиться этого изящным образом?


person Robin Barnes    schedule 26.02.2009    source источник
comment
Если ни один из приведенных ниже ответов не соответствует вашим потребностям, приведите более конкретный пример, потому что я не совсем понял то, что вы хотите. Приведите пример URL-адреса и имена файлов контроллера, макета и представления. Из вашего текущего примера я смог определить только имя файла контроллера. Остальные нет.   -  person Ionuț G. Stan    schedule 26.02.2009


Ответы (2)



$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory(...path...);

ИЛИ несколько путей

$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory(array(
    'default' => '/path/to/application/controllers',
    'blog'    => '/path/to/application/blog/controllers'
));

http://framework.zend.com/manual/en/zend.controller.front.html

person Glavić    schedule 26.02.2009
comment
Я проголосовал за вас, потому что вы правы, но выбрал другой ответ как выбранный, потому что мне нравится идея использования модульной структуры каталогов. Я действительно пытался сделать то, что вы сказали, и оказалось, что я просто немного запутал свои пути! - person Robin Barnes; 27.02.2009
comment
То, что я написал, и то, что написал Брайан Фишер, одно и то же;) Мне все равно, какой ответ вы выбрали, я просто рад, что вы решили свою проблему. p.s. tnx за голосование за;) - person Glavić; 27.02.2009
comment
Просто примечание: если вы вызываете $ front- ›setControllerDirectory в методе начальной загрузки _init * (), то перед получением экземпляра фронт-контроллера целесообразно вызвать $this->bootstrap('FrontController');. (Я потратил несколько часов, разбираясь со странностями, когда значение, которое я передал в setControllerDirectory, казалось, волшебным образом перезаписывалось). - person JW.; 02.11.2010