Установка та налаштування Symfony
Дата оновлення перекладу 2024-06-11
Установка та налаштування Symfony
Screencast
Віддажте перевагу відео-урокам? Подивіться серіал Stellar Development with Symfony.
Технічні вимоги
До створення вашого першого додатку Symfony, ви маєте:
- Встановити PHP 8.1 або вище та наступні PHP-розширення (які встановлюються та підключаються за замовчуванням у більшості установок PHP 7): Ctype, iconv, JSON, PCRE, Session, SimpleXML, і Tokenizer;
- Встановити Composer, який використовується для установки PHP-пакетів.
За бажанням ви також можете встановити Symfony CLI. Він створить бінарість під назвою
symfony
, яка надає всі необхідні вам інструменти для розробки та запуску вашого додатку
Symfony локально.
Бінарність symfony
також надає інструмент для перевірки відповідності вашого комп'ютера
усім вимогам. Відкрийте ваш консольний термінал та виконайте цю команду:
1
$ symfony check:requirements
Note
The Symfony CLI is written in Go and you can contribute to it in the symfony-cli/symfony-cli GitHub repository.
Створення додатків Symfony
Відкрийте ваш консольний термінал та виконайте будь-яку з цих команд, щоб створити новий застосунок Symfony:
1 2 3 4 5
# виконайте це, якщо ви створюєте традиційний веб-застосунок
$ symfony new my_project_directory --version="6.2.*" --webapp
# виконайте це, якщо ви створюєте мікросервіс, консольний застосунок або API
$ symfony new my_project_directory --version="6.2.*"
Єдина різниця між цими двома командами - кількість пакетів, встановлених за
замовчуванням. Опція --webapp
встановлює всі пакети, які вам зазвичай потрібні
для створення веб-додатку, тому і розмір установки буде більшим.
Якщо ви не використовуєте бінарність Symfony, виконайте ці команди, щоб створити новий застосунок Symfony, використовуючи Composer:
1 2 3 4 5 6 7
# виконайте це, якщо ви створюєте традиційний веб-застосунок
$ composer create-project symfony/skeleton:"6.2.*" my_project_directory
$ cd my_project_directory
$ composer require webapp
# виконайте це, якщо ви створюєте мікросервіс, консольний застосунок або API
$ composer create-project symfony/skeleton:"6.2.*" my_project_directory
Не має значення, яку команду ви виконуєте для створення додатку Symfony. Всі вони
створять новий каталог my_project_name/
, завантажать у нього деякі залежності і
навіть створять базові каталоги та файли, які вам знадобляться для початку. Іншими
словами, ваш новий застосунок готовий!
Note
Кеш проекту або каталог логів (за замовчуванням, <project>/var/cache/
і <project>/var/log/
) мають бути перезаписуваними веб-сервером. Якщо у
вас є проблеми, прочитайте як
налаштувати дозволи для додатків Symfony.
Налаштування існуючого проекту Symfony
На додаток до створення нових проектів Symfony, ви також будете працювати над проектами, вже створеними іншими розробниками. У такому випадку, вам лише потрібно отримати код проекту та встановити залежності за допомогою Composer. Припускаючи, що ваша команда використовує Git, налаштуйте ваш проект наступними командами:
1 2 3 4 5 6 7
# клонувати проект, щоб завантажити його зміст
$ cd projects/
$ git clone ...
# змусити Composer встановити залежності проекту в vendor/
$ cd my-project/
$ composer install
Вам скоріш за все також знадобиться налаштувати ваш файл .env та виконати декілька інших задач для проекту (наприклад, створити базу даних). При роботі над існуючим додатком Symfony вперше, може бути корисним виконати цю команду, яка відображає інформацію про проект:
1
$ php bin/console about
Запуск додатків Symfony
У виробництві вам потрібно встановити веб-сервер на кшталт Nginx або Apache та сконфігурувати його для запуску Symfony. Цей метод також може бути використано, якщо ви не використовуєте локальний веб-сервер Symfony для розробки.
Однак, для локальної розробки, найзручніший спосіб запуску Symfony - використання
локального веб-серверу, наданого бінарністю symfony
.
Цей локальний сервер надає, окрім іншого, підтримку HTTP/2, паралельні запити, TLS/SSL
та автоматичне генерування сертифікатів безпеки.
Відкрийте ваш консольний термінал, перемістить каталог вашого нового проекту та запустіть локальний веб-сервер наступним чином:
1 2
$ cd my-project/
$ symfony server:start
Відкрийте ваш браузер та перейдіть на http://localhost:8000/
. Якщо все працює, ви
побачите сторінку привітання. Пізніше, коли ви закінчите працювати, зупиніть сервер,
натиснувши Ctrl+C
у вашому терміналі.
Tip
Веб-сервер працює з будь-яким PHP-додатком, а не лише з проектами Symfony, тому це в цілому дуже корисний інструмент розробки.
Інтеграція Symfony з Docker
Якщо ви хочете використовувати Docker з Symfony, див. Використання Docker з Symfony
Установка пакетів
Розповсюдженою практикою при розробці додатків Symfony є установка пакетів (Symfony називає їх bundles), які надають готові до використання функції. Пакети зазвичай потребують деякого налаштування перед їх використанням (редагування якогось файлу для підключення пакета, створення якогось файлу для додавання початкової конфігурації і т.д.).
У більшості випадків це налаштування може бути автоматизоване і це те, чому Symfony має Symfony Flex, інструмент для спрощення установки/видалення пакетів у додатках Symfony. Технічно, Symfony Flex - це плагін Composer, який встановлюється за замовчуванням при створенні нового додатку Symfony, і який автоматизує найрозповсюдженіші задачі додатків Symfony.
Tip
Ви таокж можете додати Symfony Flex в існуючий проект.
Symfony Flex змінює поведінку команд Composer require
, update
, та
remove
, щоб надати просунуті функції. Розгляньте наступний приклад:
1 2
$ cd my-project/
$ composer require logger
Якщо ви виконаєте цю команду у додатку Symfony, що не використовує Flex, ви побачите
помилку Composer, яка пояснюватиме, що logger
- це не валідне ім'я пакета. Однак,
якщо у додатку встановлено Symfony Flex, ця команда встановить та підключить всі пакети,
необхідні для виокристання офіційного логера Symfony.
Це можливо тому що багато пакетів Symfony визначають "рецепти", які є набором
автоматизованих інструкцій для установки та підключення пакетів у додатках Symfony.
Flex веде облік усіх встановлених ним рецептів у файлі symfony.lock
, який має
бути відправлений у ваше сховище коду.
Рецепти Symfony Flex надаються спільнотою і зберігаються у двох публічних сховищах:
- Основне сховище рецептів, поточний список рецептів для пакетів високої якості. Symfony Flex шукає лише у цьому сховищі за замовчуванням.
- Сховище рецептів Contrib, містить всі рецепти, створені спільнотою. Всі з них гарантовано працюють, але їх асоційовані пакети можуть бути покинутими. Symfony Flex попросить вашого дозволу перш ніж встановлювати будь-який з цих рецептів.
Прочитайте документацію рецептів Symfony, щоб дізнатисе все про те, як створювати рецепти для ваших власних пакетів.
Пеки Symfony
Індоі одна функція вимагає установки декількох пакетів. Замість установки їх по одному, Symfony надає пеки, які є метапеками Composer, що включають у себе декілька залежностей.
Наприклад, щоб додати функції налагодження у ваш застосунок, ви можете виконати команду
composer require --dev debug
. Вона встановлює symfony/debug-pack
, який, у свою
чергу встановлює декілька пакетів на кшталт symfony/debug-bundle
, symfony/monolog-bundle
,
symfony/var-dumper
, і т.д.
Ви не побачите залежності symfony/debug-pack
у вашому composer.json
, так як
Flex автоматично розпаковує пек. Це означає, що він додає лише реальні пакети та
залежності (наприклад, ви побачите новий symfony/var-dumper
у require-dev
).
Хоча це не рекомендується, ви можете використати опцію composer require --no-unpack ...
,
щоб відключити налагодження.
Перевірка вразливостей безпеки
Бінарність symfony
, створена коли ви встановили Symfony CLI, надає команду для
перевірки на предмето того, чи містять ці залежності вашого проекту будь-які відомі
вразливості безпеки:
1
$ symfony check:security
Гарною практикою безпеке є виконання цієї команди регулярно, щоб оновити або замінити
скомпроментовані залежності якомога скоріше. Перевірка безпеки проводиться локально
шляхом отримання публічної баз даних консультативної безпеки PHP, тому ваш файл
composer.lock
не відправляється у мережу.
Команда check:security
завершуєтся з ненульовим кодом виходу, якщо якась з ваших
залежностей зазнала відомої вразливості безпеки. Таким чином, ви можете додати її у
процес створення вашого проекту і ваші постійні робочі процеси інтеграції, щоб вони
припинялися при наявності вразливостей.
Tip
У сервісах безперервної інтеграції ви можете перевірити вразливості безпеки,
використовуючи інший окремий проект під назвою Локальний PHP перевірник безпеки.
Це такий само проект, використовуваний внутрішньо check:security
, але набагато
менший у розмірі, ніж вся Symfony CLI.
Версії Symfony LTS
Відповідно до процесу релізу Symfony, версії "довгострокової підтримки" (скорочено LTS) публікуються кожні два роки. Перегляньте релізи Symfony, щоб знати, яка версія LTS є останньою.
За замовчуванням, команда, яка створює нові додатки Symfony, використовує останню стабільну
версію. Якщо ви хочете використовувати версію LTS, додайте опцію --version
:
1 2 3 4 5 6 7 8
# використовувати найновішу версію LTS
$ symfony new my_project_name --version=lts
# використовувати 'наступну' версію Symfony, яка буде опублікована (все ще в розробці)
$ symfony new my_project_name --version=next
# ви також можете обирати конкретну версію Symfony
$ symfony new my_project_directory --version="5.4.*"
Скорочення lts
і next
доступні лише при використанні Symfony для створення
нових проектів. Якщо ви використовуєте Composer, вам потрібно повідомити точну
версію:
1
$ composer create-project symfony/skeleton:"^5.4" my_project_name
Демо-додаток Symfony
Демо-додаток Symfony - це повністю функціональний застосунок, який демонструє рекомендований спосіб розробки додатків Symfony. Це чудовий інструмент для навчання для новачків у Symfony, і його код містить десятки кометарів та корисних нотаток.
Виконайте цю команду, щоб створити новий проект, заснований на демо-додатку Symfony:
1
$ symfony new my_project_name --demo
Почніть писати код!
Коли налаштування вже позаду, час створити вашу першу сторінку в Symfony.
Дізнайтеся більше
- Використання Docker з Symfony
- Використання Symfony з Homestead/Vagrant
- Конфігурація веб-сервера
- Як використовувати вбудовані веб-сервери PHP
- Оновлення стороннього пакету для старшої версії Symfony
- Установка Composer
- Установка або налаштування дозволів файлів
- Оновленння існуючих додатків до Symfony Flex
- Як конфігурувати та використовувати приватні сховища рецептів Flex
- Локальний веб-сервер Symfony
- Як встановлювати або оновлюватися до останньої не випущеної версії Symfony
- Оновлення старшої версії (наприклад, з 5.4.0 до 6.0.0)
- Оновлення молодшої версії (наприклад, з 5.0.0 до 5.1.0)
- Оновлення версії патчу (наприклад, з 6.0.0 до 6.0.1)