Справочник по Symfony
Назначение
Шпаргалка по Symfony (Framework + Console). Курс: Symfony, Первая программа на Symfony.
Консоль bin/console
| Команда | Действие |
|---|---|
debug:router | Список маршрутов |
debug:container | Сервисы DI |
debug:autowiring | Подсказки по внедрению |
cache:clear | Очистка кэша |
make:controller | Генератор контроллера |
make:entity | Сущность Doctrine |
doctrine:migrations:migrate | Применить миграции |
messenger:consume async | Воркер очереди |
server:start | Локальный сервер (если установлен symfony/cli) |
Маршрутизация (атрибуты)
#[Route('/api/items/{id}', name: 'api_item_show', methods: ['GET'])]
public function show(int $id): JsonResponse
| Параметр атрибута | Смысл |
|---|---|
requirements | Regex для сегментов |
defaults | Значения по умолчанию |
methods | HTTP-методы |
condition | Выражение для выбора маршрута |
Контроллер 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 и сервисы
config/services.yaml:
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();
DQL: $em->createQuery('SELECT p FROM App\Entity\Product p').
Twig
{{ variable }}
{% if %} ... {% endif %}
{% for item in items %} ... {% endfor %}
{% extends 'base.html.twig' %}
{% block body %} ... {% endblock %}
{{ path('route_name', {id: 1}) }}
Конфигурация окружения
Файлы .env, .env.local, config/packages/*.yaml.
| Переменная | Назначение |
|---|---|
APP_ENV | dev / prod / test |
APP_SECRET | Ключ для CSRF, cookies |
DATABASE_URL | DSN Doctrine |
См. также
- Laravel — справочник в статье
- PHPUnit и тесты (раздел тестирования)
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). PHP как язык веб-разработки - роль серверного исполнения, базовый синтаксис и место в современном стеке. Экосистема PHP-приложений - фреймворки, инструменты, пакеты и типовые архитектурные подходы веб-разработки. Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Модель исполнения PHP - жизненный цикл запроса, серверный контекст и экосистема популярных CMS. История PHP - эволюция языка от простых скриптов до зрелой платформы серверной веб-разработки. Composer в PHP - управление зависимостями, автозагрузка классов и воспроизводимая сборка проектов. Параметр opcache.fast_shutdown ускоряет завершение работы скрипта за счёт пропуска стандартной процедуры освобождения памяти. Вместо этого используется механизм сборщика мусора операционной системы. Локальная среда разработки на PHP - настройка стека, запуск приложения и отладка без продакшен-сервера. Набор советов, правил, принципов и обычаев в разработке на этом языке. Фреймворки и библиотеки PHP - организация сервисов, вспомогательные компоненты и ускорение разработки веб-приложений. Гайд по установке и настройке с написанием первой программы и её запуском. Примеры простых и полезных консольных приложений с демонстрацией концепций языка.PHP - язык веб-разработки
Экосистема PHP-приложений
Что требуется знать перед началом изучения языка программирования PHP
Модель исполнения PHP
История языка PHP
Composer - управление зависимостями в PHP
Настройка веб-сервера для работы с PHP
Локальная среда разработки на PHP
Рекомендации по разработке на PHP
Фреймворки и библиотеки PHP
Первая программа на PHP
Простые приложения на PHP