Начинающий разработчик Zend Framework пытается найти простое решение проблемы Zend Routing. Я уверен, что один из профессионалов сможет помочь.
У меня есть веб-сайт (построенный в Zend Framework с использованием Zend_Navigation), который содержит 75% статического содержимого HTML-страницы и несколько контроллеров. Навигация верхнего уровня построена в Zend_Navigation, циклически перебирая части.
Из-за своей работы я создаю множество сайтов по этим направлениям (содержащих множество статических страниц), поэтому я хочу понять это правильно. Я не хочу настраивать контроллеры и действия для каждой из этих статических страниц (их много), и я хотел создать решение, в котором я использовал Zend_Controller_Router_Route
для автоматической маршрутизации всего статического контента через StaticController
, чья работа включать или отображать .phtml-страницы на основе пары контроллер / действие в URL-адресе из какого-то каталога, такого как /layouts/staticpages
Из-за SEO и различных причин я не хочу, чтобы пары контроллеров в URL-адресе для этих статических страниц отображались как _4 _... Это должны быть «описания реального мира» /section/page
(например, advantages/someadvantage
)
Вот проблема: использование Zend_Controller_Router_Route
может выполнить работу, когда я настрою правильные маршруты, НО это испортит что-то ужасное с Zend Navigation ... Я предполагаю, потому что Zend_Navigaion не очень хорошо работает с переключением контроллера / действий на лету.
Пример кода:
$router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route('advantages/:page/*',
array('controller' => 'static', 'action' => 'display', 'mode' => 'advantages',
'page' => 'index'));
$router->addRoute('advantages', $route);
Это достаточно хорошо справляется с работой по переключению страниц в разделе «преимущества», но автоматическая запись контроллера / действий Zend_Navigation И выделение «активных» узлов в конечном итоге оказывается испорченным, потому что теперь он думает, что его контроллер «статичен» и действует это «дисплей».
Zend_Navigation принципиально несовместима с Zend_Controller_Router_Route
? Есть ли лучший способ сделать этот единственный контроллер статической страницы или обработать статический контент по всем направлениям?