Где классы Model идут в symfony2

Я новичок в Symfony2. Исходя из фона Zend, я не вижу папки для моделей. Как взаимодействуют модели и контроллеры?

Что делать, если я не хочу использовать Doctrine. Даже если я использую Doctrine, где будут жить модели и как они могут общаться с контроллерами?

На веб-сайте Symfony есть хорошая документация о symfony2, но она не соответствует той документации, которую я заметил для symfony1.X. Официальная документация не содержит того, какие пространства имен следует добавлять при использовании разных методов доктрины. Спасибо за сообщество заранее за советы.

Ответ 1

Symfony2 действительно предлагает инструменты для части контроллера, часть просмотра, но не часть модели. Вы можете создать свою модель вручную или использовать любой другой инструмент, например ORM.

- Fabien Potencier (источник)

Но как мне связаться с базой данных без модели?

Вы можете выбрать свой способ сделать это. Вы можете создавать свои собственные модели и использовать их, или вы можете использовать DataMappers или что-то еще. Symfony2 Standard Edition включает в себя Doctrine и Propel ORM. По умолчанию используется Doctrine.

Подробнее об этих ORM и о том, как вы можете использовать их в Symfony2 здесь: doctrine или propel.

Ответ 2

Вы можете создать модель вручную.

MODELS

  • Создайте новый каталог в своем комплекте (модель)
  • Создать MyModel

  • Установите пространство имен (компания\mybundle\models)

  • Установить Doctrine и использовать объекты (использовать)
  • В вашей модели поставьте DQL

КОНТРОЛЛЕРЫ

  • use company\mybundle\models\mymodel;

    public function getRecentUserAction ($max = 10)  
    {
         $user = new MyModel();
         $list = $user->getRecentUser($max) // DQL
        return $this->render('CompanyBundle:controller:index.html.twig',array('list'=>$list));
    }