Первая программа на Symfony
Первая программа на Symfony
Создадим приложение «Приветствие» с маршрутом /hello/{name} и шаблоном Twig.
Обзор: Symfony. Для сравнения пошагового MVC на PHP см. Первая программа на Laravel.
Требования
- PHP 8.2+
- Composer
- Рекомендуется Symfony CLI (
symfonyв PATH)
Создание проекта
symfony new symfony-hello --webapp
cd symfony-hello
Либо через Composer:
composer create-project symfony/skeleton symfony-hello
cd symfony-hello
composer require webapp
Запуск встроенного сервера:
symfony server:start
# или
php -S 127.0.0.1:8000 -t public
Откройте https://127.0.0.1:8000 (Symfony CLI) или http://127.0.0.1:8000.
Контроллер
php bin/console make:controller HelloController
Файл src/Controller/HelloController.php:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class HelloController extends AbstractController
{
#[Route('/hello/{name}', name: 'app_hello', requirements: ['name' => '[a-zA-Z]+'], defaults: ['name' => 'World'])]
public function hello(string $name): Response
{
return $this->render('hello/hello.html.twig', [
'name' => $name,
]);
}
#[Route('/api/hello', name: 'api_hello', methods: ['GET'])]
public function apiHello(): Response
{
return $this->json(['message' => 'Hello from Symfony API']);
}
}
Шаблон Twig
templates/hello/hello.html.twig:
{% extends 'base.html.twig' %}
{% block title %}Привет{% endblock %}
{% block body %}
<h1>Привет, {{ name }}!</h1>
<p>Это ваша первая страница на Symfony.</p>
{% endblock %}
Проверьте: http://127.0.0.1:8000/hello/Алексей — сегмент {name} с ограничением [a-zA-Z]+ отсечёт кириллицу; для Unicode ослабьте requirements или используйте query-параметр.
Полезные команды
php bin/console debug:router
php bin/console cache:clear
php bin/console make:entity Product # Doctrine
php bin/console doctrine:migrations:migrate
Структура каталогов (кратко)
| Путь | Назначение |
|---|---|
src/Controller/ | HTTP-обработчики |
templates/ | Twig-шаблоны |
config/ | Маршруты, сервисы, пакеты |
public/ | Точка входа index.php |
var/ | Кэш, логи |
migrations/ | Миграции Doctrine |
Дальше
- Настроить Security (форма входа).
- Подключить API Platform для REST поверх Doctrine.
- Деплой: только
public/отдаёт веб-сервер;APP_ENV=prod,composer install --no-dev.
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). 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