В этом первом уроке я расскажу, что такое Symfony, как его установить, создать первый проект и разобраться в его структуре.
Symfony это PHP-фреймворк с открытым исходным кодом, созданный для быстрой разработки веб-приложений. Но зачем он нужен? Давайте разберёмся на примере.
Представьте, что вы строите дом. Можно делать всё с нуля: замешивать бетон, резать доски, прокладывать проводку. Но это долго и сложно. А можно использовать готовые модули: фундамент, стены, крышу. Symfony — как такой конструктор. Он предоставляет инструменты, которые экономят время и силы.
Преимущества Symfony:
- Модульность. Symfony состоит из компонентов (например, Routing, Form, Security), которые можно использовать отдельно или вместе.
- Гибкость. Подходит для небольших сайтов и крупных enterprise-решений.
- Сообщество. Огромная база знаний, форумы и регулярные обновления.
- Документация. Одна из лучших в мире open source.
Где используется Symfony?
- Платформы вроде Drupal и Magento построены на его компонентах.
- Компании Spotify, BlaBlaCar и Vogue используют Symfony в своих проектах.
Если вы хотите писать чистый, поддерживаемый код и не «изобретать велосипед», то Symfony ваш выбор.
Установка Symfony
Перед началом работы вам понядобится:
- PHP 8.2 или новее.
- Composer (менеджер зависимостей для PHP).
Шаг 1: Установка Composer
Composer это инструмент для работы с Symfony. Установите его:
Для Windows:
- Скачайте установщик с официального сайта.
- Запустите
.exe
файл и следуйте инструкциям.
Для macOS/Linux:
Откройте терминал и выполните:
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
Проверьте установку:
composer --version # Должно вывести: Composer version 2.6.5 (или новее)
Шаг 2: Установка Symfony CLI
Symfony CLI инструмент для управления проектами. Установите его:
Для всех ОС (кроме Windows):
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash sudo apt install symfony-cli
Для Windows:
Скачайте .exe
файл с официального сайта и запустите его.
Проверьте работу CLI:
symfony check:requirements
# Убедитесь, что все галочки зелёные!
Создание первого проекта
Теперь создадим наш первый проект. Symfony CLI делает это элементарно:
- Откройте терминал в папке, где хотите разместить проект (например,
~/projects
). - Выполните команду:
symfony new my_first_project --webapp
Что здесь происходит?
symfony new
— команда создания проекта.my_first_project
— имя папки (можете выбрать своё).--webapp
— флаг, который добавляет шаблон веб-приложения (без него создаётся «скелет» для API).
Дождитесь завершения. Если всё прошло успешно, вы увидите:
✔ Symfony 7.3 was successfully installed.
Обзор структуры проекта Symfony
Перейдите в папку проекта:
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: Запустите локальный сервер
Выполните в терминале:
symfony server:start
Откройте в браузере http://localhost:8000
. Вы должны увидеть стартовую страницу Symfony.
Задача 2: Создайте свой контроллер
- Создайте файл
src/Controller/HelloController.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('Привет, это мой первый контроллер!');
}
}
- Перейдите по адресу
http://localhost:8000/hello
.
Результат: Вы увидите текст «Привет, это мой первый контроллер!».
Задача 3: Добавьте шаблон Twig
- Создайте файл
templates/hello/index.html.twig
:
{% extends 'base.html.twig' %} {% block title %}Приветствие{% endblock %} {% block body %} <h1>{{ message }}</h1> {% endblock %}
- Обновите контроллер:
public function index(): Response { return $this->render('hello/index.html.twig', [ 'message' => 'Привет из шаблона Twig!' ]); }
Обновите страницу. Теперь текст будет внутри стилизованной страницы.
Итоги 1-го урока
Сегодня вы сделали первый шаг в изучении Symfony. Узнали, зачем нужен этот фреймворк, установили его и создали проект. Ошибки будут, но именно они помогут вам расти.
В следующих уроках мы углубимся в маршрутизацию и контроллеры. Вы научитесь создавать динамические страницы и работать с параметрами URL.
Хотите продолжить? Переходите к полному курсу по Symfony для начинающих. Там вас ждут ещё 19 уроков с углублёнными темами и практическими заданиями.