Я 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. Где я должен разместить эту бизнес-логику -и т. д.?