Symfony2 и MVC - Является ли расширение контроллера хорошей практикой?

У меня простой и, возможно, глупый вопрос.

Используя PHP-фреймворк Symfony2, я часто работаю над расширением контроллеров, как показано ниже (конечно, это зависит от вида работы):

    class MainController extends Controller{
        private $locale = array();

        protected function Locale() {
        $em = $this->getDoctrine()
            ->getManager();

                $this->locale = $em->getRepository('CommonLanguageBundle:Language')
            ->findBy(
                array('code' => $this->getRequest()
                    ->getLocale()
                )
            );
//      \Doctrine\Common\Util\Debug::dump($this->locale);
        return $this->locale[0];
    }
     //..
    }
    class StoreController extends MainController{
     function a_method() {
       $data = $this->Locale()->getId();
       //...
      }
    }
    class DefaultController extends StoreController {
     $data = $this->Locale()->getId();
     //...
    }

Это хорошая практика?

Занимаясь серфингом в Интернете, я нашел много статей, но мне все еще не так ясно.

В конце концов, если бы он работал нормально в Symfony2, было бы хорошо в целом для паттерна MVC?

1 ответ

Решение

Symfony не является платформой MVC. Symfony - сервисно-ориентированная архитектура. Обычно каскадные расширяющие контроллеры не имеют смысла.

Скорее вы должны создавать сервисы и использовать их там, где они вам нужны.

Кроме того, хорошей практикой является определение контроллера как службы.

Другие вопросы по тегам