Как в symfony 3.4 вывести логин (или какие-либо данные) в базовый шаблон?

Для вывода логина или других данных в базовый шаблон в Symfony 3.4 есть несколько способов.

Первый способ - использование Twig функции. Twig - это шаблонизатор, который используется в Symfony по умолчанию. В базовом шаблоне вам нужно включить следующий код:

Welcome, {{ app.user.username }}!

Здесь app.user.username предполагает, что вы использовали систему аутентификации Symfony, и пользователь был аутентифицирован. Если пользователь не был аутентифицирован, будет возвращено значение null.

Второй способ, который также использует Twig, - это расширить базовый контроллер и добавить необходимые переменные в контекст всех view-объектов. Вот пример:

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentSecurityCoreUserUserInterface;

class BaseController extends AbstractController
{
    /**
     * @var UserInterface|null
     */
    protected $user;

    /**
     * @param UserInterface|null $user
     */
    public function __construct(UserInterface $user = null)
    {
        $this->user = $user;
    }

    /**
     * @return SymfonyComponentHttpFoundationResponse
     */
    public function render(string $view, array $parameters = array(), Response $response = null)
    {
        $parameters['user'] = $this->user;

        return parent::render($view, $parameters, $response);
    }
}

Теперь вы можете наследовать этот базовый контроллер в своих контроллерах и передавать необходимые данные, такие как логин, в шаблон:

class UserController extends BaseController
{
    public function indexAction()
    {
        $user = $this->getUser(); // Получаем данные текущего пользователя

        return $this->render('user/index.html.twig', [
            'user' => $user,
        ]);
    }
}

В шаблоне user/index.html.twig вы можете использовать переданные данные, например:

Welcome, {{ user.username }}!

Это два основных способа, которые вы можете использовать, чтобы вывести логин или другие данные в базовый шаблон в Symfony 3.4. Оба способа являются надежными и легко настраиваемыми в зависимости от ваших потребностей.