Урок 1: Введение в Symfony

В этом первом уроке я расскажу, что такое Symfony, как его установить, создать первый проект и разобраться в его структуре.

Symfony это PHP-фреймворк с открытым исходным кодом, созданный для быстрой разработки веб-приложений. Но зачем он нужен? Давайте разберёмся на примере.

Представьте, что вы строите дом. Можно делать всё с нуля: замешивать бетон, резать доски, прокладывать проводку. Но это долго и сложно. А можно использовать готовые модули: фундамент, стены, крышу. Symfony — как такой конструктор. Он предоставляет инструменты, которые экономят время и силы.

Преимущества Symfony:

  1. Модульность. Symfony состоит из компонентов (например, Routing, Form, Security), которые можно использовать отдельно или вместе.
  2. Гибкость. Подходит для небольших сайтов и крупных enterprise-решений.
  3. Сообщество. Огромная база знаний, форумы и регулярные обновления.
  4. Документация. Одна из лучших в мире open source.

Где используется Symfony?

  • Платформы вроде Drupal и Magento построены на его компонентах.
  • Компании Spotify, BlaBlaCar и Vogue используют Symfony в своих проектах.

Если вы хотите писать чистый, поддерживаемый код и не «изобретать велосипед», то Symfony ваш выбор.

Установка Symfony

Перед началом работы вам понядобится:

  • PHP 8.2 или новее.
  • Composer (менеджер зависимостей для PHP).

Шаг 1: Установка Composer

Composer это инструмент для работы с Symfony. Установите его:

Для Windows:

  1. Скачайте установщик с официального сайта.
  2. Запустите .exe файл и следуйте инструкциям.

Для macOS/Linux:
Откройте терминал и выполните:

bash
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Проверьте установку:

bash
composer --version
# Должно вывести: Composer version 2.6.5 (или новее)

Шаг 2: Установка Symfony CLI

Symfony CLI инструмент для управления проектами. Установите его:

Для всех ОС (кроме Windows):

bash
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
sudo apt install symfony-cli

Для Windows:
Скачайте .exe файл с официального сайта и запустите его.

Проверьте работу CLI:

bash
symfony check:requirements
# Убедитесь, что все галочки зелёные!

Создание первого проекта

Теперь создадим наш первый проект. Symfony CLI делает это элементарно:

  1. Откройте терминал в папке, где хотите разместить проект (например, ~/projects).
  2. Выполните команду:
bash
symfony new my_first_project --webapp

Что здесь происходит?

  • symfony new — команда создания проекта.
  • my_first_project — имя папки (можете выбрать своё).
  • --webapp — флаг, который добавляет шаблон веб-приложения (без него создаётся «скелет» для API).

Дождитесь завершения. Если всё прошло успешно, вы увидите:

✔  Symfony 7.3 was successfully installed.

Обзор структуры проекта Symfony

Перейдите в папку проекта:

bash
cd my_first_project

Давайте изучим, что внутри:

my_first_project/  
├─ bin/              # Исполняемые скрипты (например, console для команд)  
├─ config/           # Конфигурационные файлы (маршруты, сервисы)  
├─ public/           # Точка входа. Здесь index.php и статические файлы (CSS, JS)  
├─ src/              # Исходный код приложения (контроллеры, сущности)  
├─ templates/        # Шаблоны Twig  
├─ translations/     # Файлы локализации  
├─ var/              # Кэш, логи  
├─ vendor/           # Зависимости Composer  
├─ .env              # Переменные окружения  
└─ composer.json     # Описание зависимостей проекта

Примеры файлов:

  • public/index.php — фронт-контроллер. Все запросы проходят через него.
  • src/Controller/DefaultController.php — пример контроллера.
  • templates/base.html.twig — базовый шаблон.

Практические задачи

Закрепим знания на практике!

Задача 1: Запустите локальный сервер

Выполните в терминале:

bash
symfony server:start

Откройте в браузере http://localhost:8000. Вы должны увидеть стартовую страницу Symfony.

Задача 2: Создайте свой контроллер

  1. Создайте файл src/Controller/HelloController.php:
php
<?php
namespace App\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class HelloController extends AbstractController
{
    #[Route('/hello', name: 'app_hello')]
    public function index(): Response
    {
        return new Response('Привет, это мой первый контроллер!');
    }
}
  1. Перейдите по адресу http://localhost:8000/hello.

Результат: Вы увидите текст «Привет, это мой первый контроллер!».

Задача 3: Добавьте шаблон Twig

  1. Создайте файл templates/hello/index.html.twig:
twig
{% extends 'base.html.twig' %}

{% block title %}Приветствие{% endblock %}

{% block body %}
    <h1>{{ message }}</h1>
{% endblock %}
  1. Обновите контроллер:
php
public function index(): Response
{
    return $this->render('hello/index.html.twig', [
        'message' => 'Привет из шаблона Twig!'
    ]);
}

Обновите страницу. Теперь текст будет внутри стилизованной страницы.

Итоги 1-го урока

Сегодня вы сделали первый шаг в изучении Symfony. Узнали, зачем нужен этот фреймворк, установили его и создали проект. Ошибки будут, но именно они помогут вам расти.

В следующих уроках мы углубимся в маршрутизацию и контроллеры. Вы научитесь создавать динамические страницы и работать с параметрами URL.

Хотите продолжить? Переходите к полному курсу по Symfony для начинающих. Там вас ждут ещё 19 уроков с углублёнными темами и практическими заданиями.