Введение в Symfony
Пакеты и зависимости
Установка на разные платформы: здесь
Symphony включает в себя:
Ctype - модуль php для проверки символов или строки
Iconv - преобразование кодировок строки
JSON
PCRE - синтаксис регулярных выражений в стиле Perl
Session - модуль для работы с сессиями
SimpleXML - преобразует xml в объект
Лексер (Tokenizer) - предоставляет интерфейс в Zend Engine PHP-лексер, позволяет писать собственные функции для анализа и модификации исходного кода
Для установки пакетов используется Compozer - пакетный менеджер уровня приложений для php, предоставляет средства для управления зависимостями
#Установка зависимостей alpine
apk add php83-iconv php83-ctype php83-xml php83-session php83-tokenizer php83-simplexml php83-dom composer
#Установка зависимостей ubuntu
sudo apt install php8.3-iconv php8.3-ctype php8.3-xml php8.3-tokenizer php8.3-simplexml php8.3-dom php8.3-mbstring composer
Данные пакеты предоставляют все инструменты, необходимые для разработки и локального запуска приложения Symfony
Дополнительные пакеты, которые могут пригодиться в процессе разработки
sudo apt install php8.3-intl php8.3-xsl php8.3-amqp php8.3-gd php8.3-curl php8.3-redis php8.3-zip php8.3-fpm git
С помощью команды php -m можно посмотреть включённые в данный момент модули.
Установите docker:
https://docs.docker.com/desktop/setup/install/linux/
Проверка требований
Двоичный файл symfony также предоставляет инструмент для проверки соответствия окружения всем требованиям:
symfony check:requirements
Создание веб-проекта
#Создать веб-проект
composer create-project symfony/skeleton /var/www/test.netbash
#Если вы хотите использовать LTS-версию, добавьте параметр --version
composer create-project symfony/skeleton --version=lts /var/www/test.netbash
Symfony CLI
Symfony CLI — это бесплатный инструмент для разработчиков с открытым исходным кодом, который помогает создавать, запускать приложения Symfony и управлять ими прямо из терминала.
Установка Symfony CLI
https://symfony.com/download
Symfony CLI автоматически выбирает "самую подходящую" версию PHP из доступных на вашей локальной машине.
При выполнении команды в терминале можно использовать префикс symfony. Например, symfony composer, а не просто composer, либо symfony console вместо ./bin/console.
Symfony CLI автоматически создаёт некоторые переменные окружения, исходя из сервисов, запущенных на вашем компьютере с помощью Docker. Эти переменные окружения доступны для HTTP-запросов, поскольку локальный веб-сервер добавляет их автоматически. Таким образом, использование префикса symfony в CLI даст одинаковый результат на разных платформах.
Для использования HTTPS на локальном сервере нужно ещё добавить поддержку TLS
#Установка symfony symfony-CLI для Alpine:
sudo apk add --no-cache bash
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.alpine.sh' | sudo -E bash
sudo apk add symfony-cli
symfony server:ca:install
Документация: Symfony CLI
https://symfony.com/doc/current/setup/symfony_cli.html#enabling-tls
#запустить проект Symfony на локальном сервере
cd my-project/
symfony server:start
#Просмотр последних логов
symfony server:log
#Остановить сервер работающий в фоновом режиме
symfony server:stop
#Статус работы сервера symfony
symfony server:status
Если на вашем компьютере установлено несколько версий PHP, вы можете указать Symfony, какую из них использовать, создав файл с именем .php-version в корневом каталоге проекта:
cd my-project/
echo 8.2 > .php-version
#просмотреть все доступные версии PHP
symfony local:php:list
Инициализация проекта
symfony new guestbook --version=6.4 --php=8.3 --webapp --docker --cloud
Эта команда представляет собой обертку над Composer, которая облегчает создание проектов на Symfony. Она использует заготовку проекта, которая включает в себя минимальный набор зависимостей; компоненты Symfony, необходимые практически для любого проекта: консольная утилита и HTTP-абстракция, используемая для создания веб-приложений.
--webapp: По умолчанию создаётся приложение с наименьшим количеством возможных зависимостей. Для большинства веб-проектов рекомендуется использовать пакет webapp. Он содержит большинство пакетов, необходимых для "современных" веб-приложений. Пакет webapp добавляет множество пакетов Symfony, включая Symfony Messenger и PostgreSQL через Doctrine.
--docker: Эта опция включает Docker, так что Symfony будет автоматически добавлять сервисы Docker на основе необходимых пакетов
--cloud: Если вы хотите развернуть проект на Platform.sh, эта опция автоматически сгенерирует готовую конфигурацию Platform.sh. Platform.sh — это предпочтительный и самый простой способ развертывания тестовых, временных и продакшен-окружений Symfony в облаке.
Основной точкой входа рецептов Symfony является файл манифеста, в котором описаны операции, которые необходимо выполнить, чтобы автоматически зарегистрировать пакет в Symfony-приложении
Источник: https://symfony.com/doc/6.4/the-fast-track/ru/3-zero.html#inicializacia-proekta
Дополнительные расширения
composer require webapp — это команда для добавления зависимости в проект с использованием Composer, которая устанавливает набор пакетов, необходимых для создания традиционного веб-приложения
cd project
composer require webapp
Команда composer require logger используется для установки библиотеки для логирования в PHP-проекте. Она позволяет добавить зависимость, которая будет использоваться для записи сообщений в лог-файлы или другие системы логирования.
cd my-project/
composer require logger
Symfony Flex — это инструмент, который упрощает и улучшает работу разработчиков при создании приложений на основе фреймворка Symfony. Он выступает в роли менеджера пакетов и конфигураций, значительно упрощая процесс добавления, управления и настройки бандлов и зависимостей
Symfony Flex изменяет поведение команд Composer require, update, b remove, чтобы предоставить продвинутые функции
composer require symfony/flex
Чтобы добавить в приложение функции отладки, можно запустить команду composer require --dev debug . Это установит symfony/debug-pack, который, в свою очередь, установит несколько пакетов, таких как symfony/debug-bundle, symfony/monolog-bundle, symfony/var-dumper, и т. д.
composer require --dev debug
Панель инструментов веб-отладки symfony/profiler-pack
composer require symfony/profiler-pack
В Symfony есть Twig: минималистичный, мощный и довольно интересный язык шаблонов
#Установка
composer require twig
Полезные функции
#Проверка уязвимостей
symfony check:security
#Или
composer audit
#Запуск локального веб-сервера
symfony server:start
Консоль
Для выполнения bin/console, необходимо перейти в корень каталога проекта
#Показать все доступные фичи
php bin/console list
#Показать информацию об установленном приложении
php bin/console about
#Покажет все маршруты
php bin/console debug:router
#Покажет какой маршрут соответствует url
php bin/console router:match /home/about
#Покажет доступные опции конфигурации доп. инфа здесь: https://symfony.ru/doc/current/reference/index.html
php bin/console config:dump-reference
#Все параметры существующие в приложении
php bin/console debug:container --parameters
#Проверка шаблонов
php bin/console lint:twig
#Перечисляет всю доступную информацию о Twig (функции, фильтры, глобальные переменные и т.д.
php bin/console debug:twig
Структура каталогов
config - конфигурация, маршруты, сервисы, пакеты. Директория config/ состоит из набора готовых конфигурационных файлов. По одному файлу на каждый пакет.
config/packages/ содержит конфигурацию установленных пакетов
bundles.php вкл/выкл пакеты в приложении
src - содержит весь php код
templates - шаблоны twig
bin - bin/console - исполняемые файлы
var - Здесь хранятся автоматически создаваемые файлы, такие как файлы кэша (var/cache/) и журналы (var/log/).
vendor - сторонние библиотеки скачанные с помощью composer. Они загружаются через менеджер пакетов Composer.
корневой каталог вашего проекта: здесь вы размещаете все общедоступные файлы.






