У меня есть простой и, возможно, глупый вопрос.
Используя фреймворк 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?
Symfony не является средой MVC. Symfony – это сервис-ориентированная архитектура . Обычно каскадные расширяющие контроллеры не создают чувства.
Скорее вы должны создавать сервисы и использовать их в нужном вам режиме.
Более того, хорошая практика – это определить Контроллер как услугу .