Создание страницы

Сначала надо установить два расширения.

composer require annotations
composer require twig

Теперь можно создавать страницы в контроллерах, которые находятся в папке src/Controller/.

# src/Controller/CompanyController.php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

class CompanyController extends AbstractController
{
    /** @Route("company/") **/
    public function index()
    {
        return $this->render('company/index.html.twig');
    }

    /** @Route("company/about") **/
    public function about()
    {
        return $this->render('company/about.html.twig');
    }

    /** @Route("company/our-works") **/
    public function ourWorks()
    {
        return $this->render('company/our_works.html.twig');
    }
}

В строке /** @Route("company/about") **/  указан URL, по которой будет открываться страница (за это отвечает расширение «annotations»).

В методе $this->render() указан шаблон, который надо выводить в указанной странице. Шаблоны находятся в папке templates/. Для страницы «about» будет загружен шаблон «templates/company/about.html.twig».

Также в шаблон можно передавать переменные.

# src/Controller/CompanyController.php

class CompanyController extends AbstractController
{

    /** @Route("company/about") **/
    public function about()
    {
        return $this->render('company/index.html.twig', ['message' => 'Текст сообщения']);
    }

}

# templates/company/about.html.twig
Сообщение {{ message }}

В качестве шаблонизатора используется «Twig».

Вывести все доступные страницы

Узнать все доступные страницы можно через следующую команду:

 php bin/console debug:router

В результате в консоли будут показаны текущие страницы:

Symfony. debug:router