Я использую MVC. С контролерами и шаблона, мне все понятно, но вот модели, тут не все так просто. Некоторое время назад мне нужно было определиться какая структура у меня будет у моделей, и я пошел искать чужой опыт. Нашел только это http://laravel[dot]ru/docs/v3/models это и было принято за основу. Я не буду говорить про то как устроено там, а буду о том к чему я сам пришел и сейчас использую.
Модели у меня делаться на 3 типа
1. Сущности (лежат в \Models\Entities и имеет такое же пространство имен)
2. Хранилища (в \Models\Repositories)
3. Сервисы (в \Models\Services)
Сущности
========
Это простейшие объекты, являющиеся по сути прямой проекцией данных из БД.
1. chalenkoa - 18 Сентября, 2013 - 12:13:50 - перейти к сообщению
У сущностей могут быть методы напрямую относящиеся к ним (читай к данным)
Поэтому методы не могут быть статическими, то есть методы работают с конкретным объектом, созданным на основание данных из БД.
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- class User {
- ...
- public function delete() {}
- public function setPassHash() {}
- }
Например, не может быть такого метода, потому что это просто не логично, добавить конкретному пользователю другого пользователя нельзя. Добавить пользователя можно будет с помощью хранилища работающего с пользователями, о чем ниже.