Начинающий разработчик Zend Framework пытается найти простое решение проблемы Zend Routing. Я уверен, что один из вас может помочь.
У меня есть веб-сайт (встроенный в Zend Framework с использованием Zend_Navigation), который содержит 75% статического содержимого HTML-страницы и несколько контроллеров. Навигация верхнего уровня встроена в Zend_Navigation, проходя по частям.
Из-за моей работы я строю много сайтов по этим направлениям (содержащих много статических страниц), поэтому я хочу сделать это правильно. Я не хочу устанавливать контроллеры и действия для каждой из этих статических страниц (их много), и я хотел создать решение, в котором я использовал Zend_Controller_Router_Route
для автоматической маршрутизации всего статического контента до StaticController
чья работа заключается в том, чтобы включать или отображать страницы .phtml на основе парного соединения контроллер / действие в URL из какого-либо каталога, например /layouts/staticpages
Из-за SEO и по разным причинам я не хочу, чтобы сопряжение контроллера в URL для этих статических страниц отображалось как /static/page/page1
... Это должны быть "описания реального мира" /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
? Есть ли лучший способ сделать этот единственный статический контроллер страницы или обрабатывать статический контент по всем направлениям?