Как обслуживать статические страницы с помощью Zend Framework

В настоящее время мы используем Zend Framework и шаблон MVC на нашем веб-сайте. У нас есть большое количество статических страниц, которые находятся в случайных областях сайта. Эти страницы не являются простыми HTML-страницами, которые могут вообще обойти ZF... они будут участвовать в Zend_Layout и т. д.

Каков наилучший способ обслуживания этих страниц без создания отдельного действия/контроллера для каждой случайной страницы? Изменение макета страниц таким образом, чтобы все они попадали под «разное» контроллер или что-то еще, не вариант, страницы должны оставаться там, где они находятся в нашей иерархии URL-адресов для целей SEO.


person Community    schedule 21.04.2009    source источник
comment
статический, но случайный? не понял? как насчет того, чтобы обслуживать их как включения из одного контроллера/действия?   -  person markus    schedule 21.04.2009
comment
Они статичны в том смысле, что нет веской причины связывать с ними целый контроллер и действие представления. А по сайту разбросаны сотни страниц. По сути, это будет обычный html, но я хочу, чтобы макет был внедрен вместе с другими специфическими функциями ZF без изменений.   -  person    schedule 22.04.2009
comment
Я почти уверен, что он имеет в виду статический контроллер страницы, который обслуживает представления на основе URL-адреса. Например, domain.com/pages/about/us будет обслуживать представление /views/pages/about/us.html. Я считаю, что большинство фреймворков поставляется с этим из коробки, почему zend усложняет его? Ссылка: book.cakephp.org/view/958/The-Pages-Controller< /а>   -  person Alexander Morland    schedule 12.08.2010


Ответы (1)


Если я правильно понял вопрос:

  • У вас есть куча статического контента, к которому вы хотите применить свой макет.
  • Эти страницы со статическим контентом уже имеют существующие URL-адреса, которые вы не хотите нарушать.

Zend фактически отделяет URL от $controller->action(), просто так получилось, что часть MVC Zend имеет настройку по умолчанию для этого. Вы по-прежнему можете создать «разное» контроллер, который получает любой случайный URL-адрес, вам просто нужно определить некоторые пользовательские маршруты.

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

цитируя пример сайта Zend Framework:

$route = new Zend_Controller_Router_Route_Static(
    'login',
    array('controller' => 'auth', 'action' => 'login')
);
$router->addRoute('login', $route);

Приведенный выше маршрут будет соответствовать URL-адресу http://domain.com/login и будет отправлен в AuthController::loginAction( ).

Более амбициозные примеры использования сопоставления с образцом можно найти на той же странице.

person TK.    schedule 21.04.2009
comment
Как это решает вопрос? У меня есть статически сгенерированный HTML-каталог, который представляет собой руководство пользователя по приложению и находится на том же уровне, что и каталоги Zend. Я не могу заставить его отображать какие-либо файлы HTML в папке /userguide - person sandrows; 12.09.2019
comment
Если вы все еще используете Zend Framework 1.12, вот обновленная ссылка на документацию по маршрутизатору, указанную в ответе TK. framework.zend.com/manual/1.12/en/zend. controller.router.html - person Doug Couvillion; 12.10.2020