02 August, 2009

Мой опыт в создании модульного приложения на Zend Framework: Часть 2

Вторая часть задачи.

В моем проекте должен быть, как я уже писал, админский модуль; а вот фронт-энд должен быть разделен на две одинаковые по структуре части. Первоначально я думал сделать для каждой из них свой отдельный модуль. Но ведь структура один в один, и я решил, что это неразумно. И тут мне на помощь вновь пришел Ероен Кеппенс! Похоже, я торчу ему пиво...

В своей другой статье он рассказал, как он сделал админский псевдо-модуль - "попросту" попрописывал руты. Я немного видоизменил его код, убрав из рутов :module - я не понял, зачем ему надо было его указывать - на мой взгляд, по крайней мере, в моем проекте, это кажется излишеством. Таким образом, у меня получилось три, а не четыре, рута. Кроме того, в конструктор Zend_Controller_Router_Route я не добавлял _layout - учитывая LayoutLoader в первой части (я, Ероен), я решил, что это лишнее. Вместо этого я написал роутеру, что мой псевдомодуль - на самом деле дефолтный модуль. Но также, чтобы различать, в каком псевдомодуле я нахожусь, там же прописал и переменную, которая видна в getRequest().

В итоге получилось:

$route = new Zend_Controller_Router_Route(
'ophtalmology/:controller/:action/*',
array('module' => 'default', 'section' => 'ophtalmology'));
$front->getRouter()->addRoute('ophtalmology_controller_action', $route);


и далее по тексту.

No comments: