Где разместить классы доступа к службам/данным в приложении Zend Framework

Первоначально я хотел узнать, как получить доступ к диспетчеру сущностей Doctrine 2 из классов сущностей. Но я увидел другой вопрос Использование EntityManager внутри сущностей Doctrine 2.0 и узнал что я должен использовать класс обслуживания. Интересно, куда мне поместить приложение Zend Framework? Также это также называется DAO (объект доступа к данным)? Я думаю назвать его DAO вместо «Сервис», поскольку «Сервис» очень похож на что-то, что можно использовать на внешних сайтах (например, «Веб-сервис»)?

Я думаю что-то вроде Application_Models_DAO_User?


person Jiew Meng    schedule 24.12.2010    source источник


Ответы (1)


Классы обслуживания являются частью сопоставления автозагрузчика. Подобно тому, как Application_Model_Something можно найти в application/models, то же самое относится и к службам.

Служба приложения Application_Service_Something должна находиться по адресу: application/services/Something.php.

Когда вы используете сервисные классы внутри модулей, например Blog_Service_Something, они должны располагаться по адресу: application/modules/blog/services/Something.php

Я думаю, что такие классы, как менеджеры сущностей, не должны быть частью ваших контроллеров или ваших моделей, а должны располагаться в классах обслуживания.

person Jurian Sluiman    schedule 24.12.2010
comment
Конечно, вы можете настроить собственное сопоставление автозагрузчика с помощью автозагрузчиков ресурсов, примером которого является Zend_Application_Module_Autoloader, обычно создаваемый в Bootstrap. - person David Weinraub; 25.12.2010