CakePHP -куда поместить сервисную логику

Я Java-программист, который пытается исследовать CakePHP -. В настоящее время у меня проблемы со структурой/дизайном приложения. Я не мог понять, куда поместить основную логику приложения.

Когда я разрабатываю в JavaEE, общий подход выглядит следующим образом:

  • Классы моделей — это простые bean-компоненты, которые представляют объекты данных (, продукты, людей и т. д.)-в основном как структуры данных с геттерами/сеттерами;

  • Классы контроллера — это достаточно простые классы, которые собирают необходимые данные и вводят их в специальный шаблон представления, который затем отправляется пользователю;

  • Классы DAO (DataAccessObject )или Repository могут загружать и хранить объекты в базе данных;

  • Классы сервисов обычно представляют собой синглтоны, содержащие определенные методы бизнес--логики -, которые вызываются контроллерами, другими сервисами или запланированными действиями, с другой стороны, они сами вызывают методы DAO/Repository для извлечения или изменения данных.

Например, если у меня есть объекты Person, Productи Order, когда пользователь выбирает какой-либо продукт и нажимает «положить его в мою корзину/корзину» new Order, для этого должен быть создан Person, а этот Productследует добавить к этомуOrder(мы можем проверить, что Personне является плохим должником и что Productприсутствует в магазине и т. д.)-вся эта работа выполняется в методах OrderService, вызываемых некоторым контроллером.

Обычно используется какой-то IOC (Inversion of Control )для того, чтобы все сервисы и контроллеры имели ссылки на необходимые сервисы и т.д.

Теперь я немного озадачен тем, как все это делается в CakePHP. Где я должен разместить эту бизнес-логику -и т. д.?

13
задан tereško 13 August 2012 в 03:56
поделиться