Команда make:controller
Команда make:controller создаёт новый класс
контроллера в папке src/Controller. Первым
параметром передаётся имя класса контроллера.
Команда автоматически добавляет метод index
с атрибутом Route и шаблон Twig.
Синтаксис
php bin/console make:controller NameController
Пример
Давайте создадим контроллер с именем ArticleController:
php bin/console make:controller ArticleController
Результат выполнения команды:
created: src/Controller/ArticleController.php
created: templates/article/index.html.twig
Success!
Next: Open your new controller class and add some pages!
Пример
Давайте посмотрим на созданный класс контроллера:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'app_article')]
public function index(): Response
{
return $this->render('article/index.html.twig', [
'controller_name' => 'ArticleController',
]);
}
}
?>
Пример
Давайте посмотрим на созданный шаблон Twig:
{% extends 'base.html.twig' %}
{% block title %}Hello ArticleController!{% endblock %}
{% block body %}
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
<h1>Hello {{ controller_name }}! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code>src/Controller/ArticleController.php</code></li>
<li>Your template at <code>templates/article/index.html.twig</code></li>
</ul>
</div>
{% endblock %}
Пример
Давайте откроем страницу /article в браузере
и получим следующий HTML:
<h1>Hello ArticleController! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code>src/Controller/ArticleController.php</code></li>
<li>Your template at <code>templates/article/index.html.twig</code></li>
</ul>
Смотрите также
-
команда
make:entity,
которая создаёт класс сущности Doctrine -
команда
make:form,
которая создаёт класс формы -
команда
make:crud,
которая создаёт полный CRUD для сущности -
команда
make:command,
которая создаёт класс консольной команды