какая идея стоит за Zend Framework Frontcontroller / dispatcher - PullRequest
4 голосов
/ 02 апреля 2010

Zend Framework FrontController реализует Singleton и, кроме того, у него есть своего рода плагин "парадигма", - в чем идея его архитектуры, может быть, он реализует какую-то хорошо известную парадигму? и если да, то если бы вы могли дать несколько ссылок, где я могу найти информацию о причинах, которые привели к этой конкретной парадигме?

1 Ответ

8 голосов
/ 02 апреля 2010

Основная идея FrontController - обеспечить единую точку входа в ваше приложение.

Цитирование PoEAA :

Front Controller консолидирует всю обработку запросов путем направления запросов через один объект-обработчик. Этот объект может выполнять обычное поведение, которое может быть изменено во время выполнения с помощью декораторов. Затем обработчик отправляет объектам команд поведение, характерное для запроса.

Дополнительные определения:

Также см. Главу в справочном руководстве по переднему контроллеру :

Zend_Controller_Front реализует шаблон »Front Controller, используемый в» приложениях Model-View-Controller (MVC). Его целью является инициализация среды запроса, маршрутизация входящего запроса, а затем отправка любых обнаруженных действий; он объединяет любые ответы и возвращает их после завершения процесса.

О том, чтобы быть Синглтоном

Zend_Controller_Front также реализует »шаблон Singleton, то есть только один его экземпляр может быть доступен в любой момент времени. Это позволяет ему также действовать как реестр, в котором могут рисовать другие объекты в процессе отправки.

Общее определение синглтона и шаблона реестра см .:

О подключаемости

Zend_Controller_Front регистрирует посредника плагинов с собой, позволяя плагинам наблюдать за различными событиями, которые он запускает. В большинстве случаев это дает разработчику возможность адаптировать процесс отправки к сайту без необходимости расширять фронт-контроллер для добавления функциональности.

Хорошее подробное объяснение того, как Zend Framework использует Front Controller и что происходит под капотом во время запроса MVC, можно найти в:

...