Symfony Framework - руководство для новичков

  • 26 мая, 09:35
  • 2986
  • 0

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

Symfony зарекомендовал себя как фундамент для веб-сервисов. Он содержит многоразовые библиотеки и компоненты PHP. Такие проекты, как Laravel и Drupal, используют компоненты Symfony в своих приложениях.

Symfony был разработан, чтобы сократить время создания и обслуживания веб-приложений и избежать повторяющихся задач. На него сильно повлияла  среда Spring. 

История Symfony

Symfony был выпущен SensioLabs и опубликован 18 октября 2005 г. как бесплатное программное обеспечение. Он был выпущен под лицензией MIT. Однако в 2007 году была выпущена более стабильная первая версия, но она не была такой многообещающей, как версия 2.0. Однако разработчики обнаружили серьезные проблемы с обновлением и обратной совместимостью. Самая лучшая и многообещающая версия - 2.3, которая имела хорошую стабильность и функциональность. Последующие обновления 2.4, 2.5, 2.6 были не столь заметны, и все последующие выпуски были обратно совместимы. Текущая версия - 5.2, которая имеет некоторые важные функции, такие как псевдо-локализация, 24-битные цвета на консоли, объекты TranslatableMessage, поддержка атрибутов / аннотаций PHP 8 и многое другое.

Функции

Как мы упоминали ранее, основная цель Symfony - оптимизация веб-приложений. Фреймворки Symfony обладают следующими уникальными особенностями:

  1. Микро-фреймворк на основе MVC (модель-представление-контроллер)
  2. Высокопроизводительный фреймворк PHP
  3. Многоразовые компоненты, которые не связаны друг с другом
  4. Функции ведения журнала ошибок и управления сеансом
  5. Гибкая маршрутизация URI
  6. Активное сообщество
  7. Высокоразвитый шаблонизатор Twig 
  8. Расширяемый
  9. Xорошая читаемость кода
  10. Поддержка нескольких платформ баз данных

Архитектура Symfony

Архитектура проста и состоит из компонентов и пакетов, которые можно использовать повторно. 

Компоненты обеспечивают единую специализированную функциональность. Например, компонент HTTP, компонент кеширования, компонент файловой системы и т. д. Это не что иное, как автономные библиотеки PHP. 

Пакеты похожи на плагины, их проще создавать и использовать. Пакет может использовать множество компонентов Symfony и предоставлять множество функций. Сама основная веб-структура Symfony представляет собой пакет (FrameworkBundle). 

Компоненты могут получить доступ к любому количеству пакетов. Общие пакеты, используемые в платформе, - это FrameworkBundle, FrameworkExtraBundle, DoctrineBundle. Помимо этого, у нас могут быть собственные пакеты и пакеты доктрин. 

Приложение Symfony может независимо получать доступ к компонентам и пакетам. 

HttpKernel

Этот компонент предоставляет строительные блоки, необходимые для создания быстрых и гибких приложений на основе HTTP. Его можно установить с помощью команды:

$ composer require symfony/HTTP-kernel

Некоторые проекты, в которых используется компонент HttpKernel, - это Drupal, OroCRM, Lumen, Thelia, Sulu и т. д. Ядро внутренне определяет рабочий процесс, который начинается с запроса и заканчивается ответом. Он разрешает контроллер, аргументы и получает ответ с помощью метода handle (). События управляют всеми этапами рабочего процесса HttpKernel.

HttpFoundation

Компонент HttpFoundation отвечает за добавление объектно-ориентированного уровня в спецификацию HTTP. Глобальные переменные, которые являются частью каждого HTTP-запроса, например GET, POST, COOKIE, SESSION и т. Д., Заключены в объектно-ориентированный уровень. Чтобы установить этот компонент, введите команду как:

$ composer require symfony/HTTP-foundation

DoctrineBundle

Чтобы узнать о DoctrineBundle, нам нужно знать, что такое Doctrine.

Doctrine - это проект или набор библиотек PHP, которые предоставляют постоянные услуги. Он содержит ORM (Object-Relational Mapper) и уровень абстракции базы данных (DBAL). Он использует язык запросов Doctrine (DQL), объектно-ориентированный аналог SQL, для написания запросов к базе данных. С Doctrine нет необходимости хранить и поддерживать сложные схемы базы данных XML. 

DoctrineBundle интегрирует уровни ORM и DBAL в приложения Symfony. Вы также получаете набор консольных команд, параметры конфигурации и сборщик панели инструментов веб-отладки. Чтобы установить пакет, введите:

$ composer require doctrine/doctrine-bundle

Чтобы получить пакет для конкретной базы данных, например, если вы хотите DoctrineMongoDBBundle, вы должны добавить конкретный пакет в файл composer.json:

"require": {
        "doctrine/mongodb-odm-bundle": "^3.0"
    },

а затем установите зависимости с помощью команды обновления из каталога (расположения) файла compose.json:

$ php composer.phar update doctrine/mongodb-odm-bundle

Как скачать и установить Symfony

Чтобы установить Symfony на свой компьютер, у вас должен быть PHP 5.4 или новее. Кроме того, хорошо иметь веб-сервер, такой как WAMP или Microsoft IIS для Windows, MAMP для Mac, LAMP для Linux или XAMP / Nginx (многоплатформенный). 

Вы можете напрямую установить установщик через командную строку, используя следующие команды:

$mkdir -p /usr/local/bin 

$curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony 

$chmod a+x /usr/local/bin/symphony

После того, как мы установили установщик, мы можем создать новое приложение:

symfony new <our_app_name>

После выполнения этой команды Symfony будет загружен в вашу систему, и проект будет создан с его каталогом first app /. 

Чтобы запустить приложение, нам нужно запустить сервер:

cd <our_app_name> 

PHP bin/console server:run

Чтобы узнать, прошла ли установка успешно, откройте браузер и перейдите по адресу localhost: 8080. Вы должны увидеть приветственное сообщение.

После установки фреймворка вы можете установить необходимые компоненты и пакеты, как показано в предыдущем разделе!

Типичный рабочий процесс состоит из следующих шагов:

  1. Пользователь делает запрос приложения через браузер, используя протокол HTTP, то есть http://xyz.com
  2. В свою очередь, браузер передает запрос веб-серверу, например Apache, WebSphere и т. д.
  3. Затем сервер перенаправляет запрос пользователя на нижележащий уровень PHP. Уровень PHP, в свою очередь, перенаправляет его в веб-фреймворк Symfony. 
  4. Основной компонент HttpKernel разрешает контроллер (мы видели это в архитектуре) запроса. Он использует компонент маршрутизации для пересылки запроса на целевой контроллер запросов.
  5. Основная бизнес-логика выполняется на уровне контроллера.
  6. Затем появляется DoctrineORM, через который контроллер взаимодействует с моделью. DoctrineORM отвечает за подключение к источнику данных.
  7. После завершения процесса контроллер генерирует ответ самостоятельно или создает его с помощью механизма просмотра. Механизм просмотра - это не что иное, как компонент, отвечающий за преобразование ответа в формат HTML.
  8. Ответ отправляется обратно на веб-сервер. Затем веб-сервер передает ответ пользователю (браузеру).

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

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

  1. Быстрая разработка : поскольку Symfony - это компонентный фреймворк, его можно легко установить и использовать. Это делает разработку более быстрой и эффективной, а также помогает разработчикам быстро создавать приложения.
  2. Гибкость : Благодаря таким функциям, как внедрение зависимостей (DI) и диспетчеризация событий, Symfony упрощает разработчикам создание даже сложных приложений с высочайшим уровнем конфигурации, обеспечивая гибкость кода.
  3. Расширяемость : поскольку все представляет собой пакет и добавляет уникальную функциональность, разработчики могут повторно использовать пакеты или добавлять их в структуру. Нет необходимости изменять фреймворк; только комплект можно настроить в соответствии с требованиями конкретного проекта.
  4. Стабильность : после первых сбоев новые версии Symfony были довольно стабильными и устойчивыми. Они также совместимы с общедоступными API. 
  5. Простота разработки : разработчикам не нужно беспокоиться о второстепенных функциях и сосредоточиться на своей бизнес-логике, в то время как фреймворк заботится об основных функциях. Symfony работает как с маленькими, так и с большими проектами благодаря своей архитектуре, основанной на компонентах и пакетах. Панели инструментов веб-отладки помогают решать различные проблемы на ранней стадии разработки, обеспечивая высокое качество результатов.

Компоненты Symfony

Symfony легко изучить, потому что он состоит из компонентов и пакетов, и если вы знаете об основных компонентах и пакетах, вы можете легко создавать новые приложения. Некоторые важные компоненты:

1. Finder

Он предоставляет классы для быстрого поиска файлов и каталогов по указанному пути путем перебора файлов.

2. Файловая система

Предоставляет команды для выполнения основных операций с файлами, таких как создание файла или папки, проверка наличия файла и т. Д.

3. ClassLoader

Предоставляет реализацию для стандартов загрузчика классов PSR-0 и PSR-4. Он также выполняет автоматическую загрузку классов. 

4. DependencyInjection

Предоставляет контейнеры для обработки зависимостей. Платформа широко использует этот компонент, используя контейнер службы.

5. Диспетчер событий

Обеспечивает программирование PHP на основе событий. Объекты могут взаимодействовать друг с другом, отправляя и прослушивая события.  

6. Сериализатор

С помощью Serializer мы можем преобразовывать объекты PHP в различные форматы, такие как JSON, двоичный, XML и т. Д., И конвертировать их обратно в объекты PHP без потери данных.

7. ExpressionLanguage

Предоставляет механизм выражений, который делает код более аккуратным и компактным. ExpressionLanguage состоит из двух способов работы с выражениями: оценка (выражение вычисляется без компиляции в PHP) и компиляция (выражение компилируется, чтобы его можно было кэшировать, а затем вычислить). Он поддерживает множество синтаксисов, таких как литералы, объекты, операторы, функции, массивы и т. д.

8. Рабочий процесс

Обеспечивает расширенное программирование PHP, предоставляя расширенные инструменты для обработки конечных автоматов. 

9. HttpFoundation

Предоставляет объектно-ориентированный уровень для объектов HTTP-запроса и ответа, предоставляемых PHP по умолчанию.

10. Форма

Позволяет легко создавать формы в веб-приложении

11. HttpKernel

Берет на себя весь процесс запроса-ответа веб-приложения. Это основной компонент архитектуры Symfony. 

12. Маршрутизация

Маршрутизация определяет часть приложения, которая должна обрабатывать конкретный запрос. Он отображает текущий запрос на набор заранее определенных переменных конфигурации.

В Symfony есть еще много компонентов, и вы можете посетить официальный сайт Symfony, чтобы проверить их все.

Пакет Symfony

Пакет - это набор файлов и папок, организованных в определенную структуру. Компоновка сделана так, что несколько приложений могут повторно использовать пакеты. Основное приложение Symfony упаковано в виде пакета и называется AppBundle. Другими примерами пакета могут быть AdminBundle (сайт администратора), HelloMobileBundle (приветственное мобильное приложение) и т. д.

В комплект входят:

  1. Контроллер : все контроллеры помещаются в папку контроллеров.
  2. Внедрение зависимостей : здесь находятся все файлы, относящиеся к DI и конфигурации.
  3. Resources / config : для конфигураций, связанных с пакетом
  4. Ресурсы / общедоступные : CSS, JS, изображения и т. Д., Относящиеся к пакету, находятся здесь.
  5. Ресурсы / представление : для хранения всех шаблонов представлений, связанных с пакетом.
  6. Тесты : все модульные тесты пакета хранятся в этой папке.

Вы можете легко настроить часть любого стороннего пакета, который хотите использовать для своего приложения. Для получения более подробной информации проверьте переопределение пакета Symfony . 


0 комментариев
Сортировка:
Добавить комментарий

IT Новости