Прежде всего, я должен сказать, что я вижу ответы и документацию в течение нескольких дней, но никто из них не отвечает на мой вопрос.
Единственное и простое, что я хочу сделать, - это использовать веточку.Служба как глобальная служба в BaseController.
Это мой код:
<?php
namespace App\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use App\Service\Configuration;
use App\Utils\Util;
abstract class BaseController extends Controller
{
protected $twig;
protected $configuration;
public function __construct(\Twig_Environment $twig,Configuration $configuration)
{
$this->twig = $twig;
$this->configuration = $configuration;
}
}
Затем во всех моих контроллерах расширяется служба веток и конфигурации, без необходимости вставлять ее снова и снова.
//...
//......
/**
* @Route("/configuration", name="configuration_")
*/
class ConfigurationController extends BaseController
{
public function __construct()
{
//parent::__construct();
$this->twig->addGlobal('menuActual', "config");
}
Как вы можете видеть, единственное, чего я хочу, это иметь некоторый глобальный services
, чтобы все было более организованным, а также создать глобальный shortcuts
для всех моих controllers
.В этом примере я назначаю глобальную переменную, чтобы сделать ссылку активной в меню моего шаблона, и в каждом контроллере я должен добавить новое значение для menuActual
, например, в UserController
переменная будет addGlobal('menuActual', "users")
,
Я думаю, что это должно быть в хороших практиках Symfony, которых я не нахожу: (.
Кажется, что нужно включить \Twig_Environment
в каждом контроллере для назначения переменной представлениюочень повторяющийся для меня. Это должно прийти по умолчанию в контроллере.
Спасибо