Давайте посмотрим, мой архитектор:Доктрина, MVC, Symfony: где я могу использовать Доктрину? Могу ли я использовать его в контроллере?
Модель:
// links table: (ID, LINKNAME)
Class Link extends Link_base
{
}
Контроллер:
public function index()
{
$this->links = new Doctrine - here I build the query, SELECT, ORDER BY, etc
}
в этом примере, модель может быть, остаются пустыми (без серьезной логики), все, что мне нужно, это выберите с заказом. Я не уверен, что могу использовать Doctrine в контроллере, хотя я должен переделать его вот так?
Class Link extends Link_base
{
public function getLinks()
{
return new Doctrine - here I build the query, SELECT, ORDER BY, etc;
}
}
Контроллер:
public function index()
{
$this->links = Links::getLinks();
}
Я не уверен, какой путь, кажется, в порядке. Конечно, при выборе потребностей более сложное форматирование todo-s, оно идет к модели или помощнику, но я чувствую, что просто создал новый (ненужный) слой. Этот getLinks() используется только один раз. Другими словами: Доктрина может использоваться только в модели, или же она может использоваться и в контроллерах?
май - да; должен - ** НЕТ ** –
Можете ли вы подтвердить это с помощью примера или источника? –
Doctrine2 - это структура абстракции настойчивости (реализация [data mapper] (http://martinfowler.com/eaaCatalog/dataMapper.html)) и никогда не должна подвергаться воздействию уровня сохранения. Вместо этого он должен использоваться в службах для хранения и извлечения данных из объектов домена (в пределах уровня модели). –