В октябре 2005 года французская компания-разработчик программного обеспечения SensioLabs выпустила фреймворк с открытым исходным кодом Symfony, который на самом деле разрабатывался под названием Sensio Framework. Необычное написание нового имени произошло из-за желания сохранить старый префикс класса и темы sf. Стимулом для фреймворка стал Ruby on Rails, появившийся годом ранее, и связанное с этим стремление команды разработчиков к сопоставимой платформе разработки PHP-проектов. С тех пор SensioLabs постоянно совершенствует Symfony Framework. Например, модульная структура была добавлена в 2011 году в Symfony 2.
- Что такое Symfony?
- Symfony: Знакомство с компонентами веб-фреймворка
- Концепция Model View Controller для структурирования веб-приложения
- Symfony: PHP как магнит для пользователей
- Обратная совместимость и LTS-версии обещают преемственность
- Плюсы и минусы фреймворка Symfony
- Для кого предназначена коллекция компонентов PHP?
Что такое Symfony?
Symfony — это коллекция из примерно 30 библиотек PHP, которые можно загрузить и использовать как в виде пакета, так и по отдельности. Помимо этих стандартных компонентов существуют дополнительные модули, которые либо расширяют структуру, либо могут использоваться отдельно. По данным SensioLabs, за последние десять лет уже зарегистрировано более 500 миллионов загрузок отдельных пакетов или всего фреймворка, что находит отражение в общем распределении: многочисленные проекты, такие как, например. B. система управления контентом Drupal, инструмент веб-анализа Piwik или программное обеспечение для форума phpBB.использовать компоненты Symfony. Все пакеты фреймворка можно использовать повторно и они находятся в свободном доступе на официальной домашней странице.
Symfony: Знакомство с компонентами веб-фреймворка
Тот факт, что Symfony служит основой для разработки веб-проектов всех видов, в основном связан с его модульной структурой. Каждый модуль имеет свою собственную функцию, но не зависит от других компонентов, что придает платформе высокую степень гибкости и расширяемости.дает. Например, вы можете использовать Symfony в качестве полнофункционального фреймворка, если вам нужен очень широкий набор функций для вашего веб-проекта. Кроме того, у вас есть возможность скомпилировать свой собственный набор библиотек Symfony или создать упрощенную версию фреймворка. Таким образом, вы можете оптимально подобрать компоненты под требования вашего веб-приложения — независимо от того, сложный ли это корпоративный проект или простой веб-сайт. При этом у вас всегда есть возможность добавить или удалить модули, если общие условия изменятся.
Вы можете, например. выбрать из следующих стандартных компонентов:
- Asset : модуль для генерации URL и управления версиями файлов изображений, таблиц стилей CSS и приложений JavaScript.
- ClassLoader : ClassLoader обеспечивает автоматическую загрузку ваших собственных классов PHP.
- Debug : Предоставляет инструменты для отладки кода PHP для поиска и изоляции ошибок.
- DependencyInjection : позволяет определить стандарты создания объектов для соответствующего веб-проекта.
- EventDispatcher : элементарный компонент, который регулирует связь между отдельными модулями в виде событий.
- Form : содержит инструменты для простого создания многоразовых HTML-форм.
- Templating : инструменты для создания системы шаблонов.
- Translation : модуль для интернационализации проекта.
- Validator : дает вам возможность проверять созданные классы.
- Yaml : загружает и сохраняет файлы.yml.
Концепция Model View Controller для структурирования веб-приложения
Symfony позволяет реализовать подход Model View Controller (MVC). Этот шаблон архитектуры делит приложения на три области.
- Данные и основные функции (модель),
- Визуальное представление сгенерированных данных (View)
- И обработка пользовательского ввода (контроллер).
Концепция MVC обеспечивает четкий, хорошо структурированный программный код и высокую степень гибкости различных компонентов, которые благодаря концепции можно заменять и повторно использовать, поскольку они не привязаны к конкретным входным данным. На данный момент, однако, необходимо указать, что Symfony не принадлежит к провозглашенным рангам MVC-фреймворков и не содержит каких-либо интегрированных компонентов модели. Если вы создаете новый проект Symfony, типичная папка модели также отсутствует. С помощью дополнительных библиотек ORM (Object Relational Mapper), таких как Doctrine или Propel, рекомендованных SensioLabs, вы можете реализовать объектное хранилище в системах баз данных.хотя и легко самостоятельно.
Чтобы создать уровень представления (представление) вашего веб-приложения, используйте модуль шаблонов и создайте соответствующие шаблоны, которые вы можете расширить с помощью определенных функций, используя так называемые помощники (объекты PHP). По умолчанию слой контроллера называется index.php (находится в веб-папке). Сами действия пользователя называются в Symfony «Действиями», как и во многих других фреймворках.
Symfony: PHP как магнит для пользователей
Symfony — это набор различных библиотек PHP, поэтому для использования фреймворка вам необходимо установить язык сценариев. Для поддерживаемой в настоящее время версии Symfony 2.8 серии 2.x требуется как минимум PHP 5.3.9. Для Symfony 3.1 и 3.2 требуется PHP 5.5.9 или выше. С самого начала перед командой разработчиков SensioLabs стояла цель создать коллекцию компонентов для проектов PHP, которая могла бы конкурировать с сопоставимыми фреймворками на других языках. Французские разработчики были особенно впечатлены Ruby on Rails, поэтому они внимательно следовали структуре известного фреймворка Ruby при компиляции и поддержке отдельных компонентов.
Таким образом, дальнейшее развитие и успех фреймворка Symfony также тесно связаны с историей языка сценариев. Поскольку он находится в свободном доступе как язык с открытым исходным кодом и всегда пользовался большой популярностью на сцене, различные разработчики также внесли свой вклад в оптимизацию в последние годы. Сильное увеличение производительности, связанное с PHP 7, также свидетельствует о положительном влиянии на производительность будущих веб-приложений Symfony.
Обратная совместимость и LTS-версии обещают преемственность
Новая версия Symfony выпускается каждые шесть месяцев с 2013 года, и пользователи, которые зарегистрировались в службе сообщества SensioLabsConnect, своевременно информируются об этом по электронной почте. Обновление фреймворка до более новой версии каждые шесть месяцев поначалу кажется очень утомительным и непрактичным делом для сложных веб-приложений. Тем не менее, SensioLabs предоставляет соответствующие решения, которые обеспечивают необходимую непрерывность фреймворка и разработанных приложений:
- Обратная совместимость : все обновления Symfony, начиная с версии 2.3, обратно совместимы. Это означает, что функциональность разработанных приложений гарантируется даже при обновлении до более высокой версии. Однако есть некоторые исключения, на которые не распространяется неограниченное обещание совместимости. Кроме того, гарантия не распространяется на основные выпуски, такие как Symfony 3.0 (4.0 и т. д.).
- Долгосрочная поддержка: Версии Symfony обычно поддерживаются в течение восьми месяцев. Однако в версии 2.3 SensioLabs выпустила первую версию Symfony с долгосрочной поддержкой (LTS). Эти выпуски LTS запланированы к выпуску раз в два года и обеспечивают 36 месяцев исправлений ошибок и 48 месяцев исправлений безопасности. В дополнение к запланированной второй версии LTS 2.7, последующая версия 2.8 также была оснащена расширенным периодом поддержки.
- «Процесс непрерывной миграции» для 3.0 : Команда разработчиков сопровождает переход на последнюю основную версию Symfony 3.0 концепцией непрерывного пути обновления. Как разработчик приложения Symfony, вы можете отображать подробные инструкции для строк кода, которые необходимо пересмотреть в версиях 2.x, и, таким образом, постепенно адаптировать их к новым спецификациям. Затем вы запускаете обновление до новой версии платформы веб-приложений.
Плюсы и минусы фреймворка Symfony
В прошлом поиск подходящего PHP-фреймворка был похож на поиск иголки в стоге сена: стремление к мощному набору библиотек для популярного веб-языка привело к разработке многочисленных представителей, которые очень по-разному подходили для разных типов проектов. Нескольким фреймворкам, включая Symfony, удалось убедить большое количество PHP-разработчиков благодаря постоянному совершенствованию. Фреймворк особенно хорош в структурировании и связывании отдельных модулей, с помощью которых могут быть реализованы различные веб-приложения.и по праву очень популярен в сообществе сегодня. С версиями с долгосрочной поддержкой и общим обещанием предложить максимально возможную обратную совместимость команда разработчиков SensioLabs также предлагает правильную основу для обеспечения непрерывности проектов Symfony.
Однако иногда переход на новую версию фреймворка и связанные с этим корректировки кода разрабатываемого приложения Symfony довольно утомительны, несмотря на предлагаемую помощь. Сложность также является большой проблемой для PHP-фреймворка в целом. Хотя вы найдете общую документацию и пояснения для каждого отдельного модуля, новичкам все же сложно ознакомиться с фреймворком. Более того, фреймворк Symfony обнаруживает недостатки с точки зрения производительности — в том числе по сравнению с другими фреймворками PHP. Большую роль здесь также играет повсеместное использование ресурсоемкой ORM-библиотеки Doctrine.
Для кого предназначена коллекция компонентов PHP?
Все модули Symfony отличаются тем, что работают как по отдельности, так и в комбинации. Последний не обязательно должен быть стандартным пакетом фреймворка: вместо этого вы можете собрать свой собственный микрофреймворк, который содержит только выбранные вами компоненты. Таким образом, вы избегаете работы со слишком перегруженной структурой библиотеки, которая выходит далеко за рамки потребностей разрабатываемого проекта. Но Symfony также масштабируется в другом направлении и с дополнительными модулями быстро становится базовой конструкцией для требовательных веб-проектов.перепрофилировать. Многочисленные приложения (полностью или частично) основаны не только на Symfony, как уже упоминалось, но также, например. B. веб-сайт службы потоковой передачи музыки Spotify. Французский веб-сайт известного модного журнала Vogue также является одним из бенефициаров PHP-фреймворка.
Фреймворк Symfony — правильный выбор для вас, если вы работаете с PHP и вам нужна высокая степень гибкости. Однако для правильного использования отдельных библиотек требуется нечто большее, чем базовые знания языка сценариев. Так что запланируйте достаточно времени, чтобы познакомиться с особенностями фреймворка, а затем наслаждайтесь преимуществами разработки на Symfony.








