Перейти к основному содержимому

Справочник по Symfony


Назначение

Шпаргалка по Symfony. Сначала пройдите Первую программу на Symfony и обзор.


Консоль bin/console

php bin/console <команда>
КомандаДействиеКогда нужна
debug:routerСписок маршрутовПосле #[Route]
debug:containerСервисы DIПоиск имени сервиса
debug:autowiringПодсказки DIОшибка autowire
cache:clearОчистка кэша500 после конфига
make:controllerКонтроллерНовый HTTP-обработчик
make:entityСущность DoctrineНовая таблица
doctrine:migrations:migrateМиграцииОбновление схемы БД
messenger:consume asyncВоркер очередиMessenger
server:startЛокальный серверSymfony CLI

Маршрутизация (атрибуты)

#[Route('/api/items/{id}', name: 'api_item_show', methods: ['GET'])]
public function show(int $id): JsonResponse
ПараметрСмысл
requirementsRegex для {id}
defaultsЗначения по умолчанию
methodsHTTP-методы

Контроллер AbstractController

return $this->render('tpl.html.twig', ['x' => 1]);
return $this->json(['ok' => true]);
return $this->redirectToRoute('route_name');
return $this->file('/path/to.pdf');
$this->denyAccessUnlessGranted('ROLE_ADMIN');

DI и сервисы

services:
_defaults:
autowire: true
autoconfigure: true
App\:
resource: '../src/'
App\MailerInterface: '@App\SymfonyMailer'

Doctrine

#[ORM\Entity]
class Product
{
#[ORM\Id, ORM\GeneratedValue, ORM\Column]
private ?int $id = null;

#[ORM\Column(length: 255)]
private string $name = '';
}
$product = $repo->find($id);
$em->persist($entity);
$em->flush();

Twig

КонструкцияНазначение
{{ variable }}Вывод
{% if %}Условие
{% for %}Цикл
{% extends %}Layout
{{ path('route_name', {id: 1}) }}URL

Конфигурация

ПеременнаяНазначение
APP_ENVdev / prod / test
APP_SECRETCSRF, cookies
DATABASE_URLDSN Doctrine

См. также


Основа по протоколу

Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.