Краткий обзор Symfony. Актуальность. Стоит ли попробовать?

    Всем доброго! У нас запускается третий партнёрский курс — Разработчик PHP, где мы вместе с Авито подготовили программу, а теперь думаем стоит ли отдельно делать спецкурс по фреймворкам. Первым на рассмотрении оказался Symfony.

    Немного истории

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

    Он прошел длинный путь от полностью интегрированного full-stack фреймворка с бэк-офисом в Symfony 1.x к фреймворку, который стал развитием наработок Java-сообщества, и содержавшем в себе компоненты, вдохновленные JEE в версии Symfony2.

    Изначально Symfony2 требовал PHP 5.2.7, но PHP 5.3, только вышедший на тот момент, обладал новой объектно-ориентированной моделью, поэтому SensioLabs незамедлительно сделали эту версию обязательной. Уже после в Symfony использовали Composer, завершили документацию и полностью перевели её на английский.

    Практически сразу началась миграция крупных open-source проектов на Symfony: OroCRM, EzPublish, Drupal8, PHPBB, PrestaShop, Piwik и многие другие — часть полностью перешла на этот каркас, а некоторые использовали только отдельные программные компоненты. Стоит особо отметить Drupal8 — возможно, это не был самый первый проект, но точно одна из крупнейших CMS на рынке.

    Возможность использовать лишь отдельные программные компоненты Symfony позволила обогатить экосистему специализированными программными решениями. Это сместило в тень фреймворк Standard Edition, (так называемое “полное издание” или “мета-пакет”), который уже не мог быть ответом на насущные вопросы бизнеса. Поэтому в 2017 году создатель Symfony объявил, что версия 3.4 для него станет последней.



    Неполный список самых известных проектов, использующих Symfony:

    • Фреймворк Sylius eCommerce;
    • Сервис социальных закладок Delicious;
    • API Platform — специализированный фреймворк для дизайна RESTful API;
    • Laravel — доступный, RAD-ориентированный фреймворк;
    • Платформа Oro и связанная с ней экосистема: Oro CRM, Akeneo, OroCommerce и Marello;

    Новое дыхание — Symfony Flex

    Плагин Flex для Composer — это будущая замена Standard Edition. Он позволит сделать разработку Symfony приложений намного легче.

    У разработчика появится возможность самому выбирать и добавлять нужные ему зависимости, используя файлы формата YAML. Они объяснят Flex что нужно сделать: добавить зависимость, конфигурировать и зарегистрировать бандл или, например, создать папку.

    Найти “рецепты” для Flex можно в официально утвержденном каталоге SensioLabs. Кроме него также существует общественный источник, где каждый может добавить свой рецепт и сделать его доступным для всех.

    Для того, чтобы выпустить RESTful API в 2017 году, используя Flex, нужно обратиться к API Platform. Он доступен через Flex, поэтому для получения полностью рабочего приложения достаточно выполнить всего одну команду.

    Многие считают, что основной фокус проекта Symfony не на самом фреймворке, а на поддержании высококачественных программных систем и их подробной документации и я не могу с ними не согласится. Думаю, на этот вывод повлиял относительный успех Symfony 3 и популярность таких программных решений, как Akeneo. По-моему, команда Symfony движется в правильном направлении :)

    Плагин для Composer совместим с Symfony 3.3 и совсем не зависит от выхода Symfony 4, поэтому уже сейчас можно начинать пробовать и эксперементировать.

    Symfony в 2017

    Если вы хотите быстро разобраться с API Platform, Akeneo, Marello, Sylius, Drupal8, Laravel или фреймворком Symfony Standard Edition, то изучение экосистемы Symfony может вам очень помочь. Стоит обратить внимание на следующие моменты:

    • Каким образом приложение Symfony читает HTTP запрос и возвращает ответ;
    • Каким образом приложение Symfony создает и делает доступными объекты (которые называются “сервисы”);
    • Каким образом приложение Symfony отправляет и следит за событиями в течение своего жизненного цикла;
    • Как создавать такие события;

    Компоненты Symfony

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

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

    • Компонент Console: предоставляет полноценную консоль с аргументами и управлением параметрами, крайне необходимыми PHP в режиме CLI;
    • Компоненты Debug и VarDumper: предоставляют улучшенный контроль стека в случае ошибки и функцию дампа в качестве замены var_dump;
    • Компоненты Finder и Filesystem: предоставляют удобный API для поиска и манипуляций с папками и файлами;
    • Компоненты Polyfill-*: позволяют приложению использовать функции, недоступные из-за версии PHP или из-за отсутствия нужных расширений PHP;

    Все эти компоненты используются в самых крупных PHP проектах и могут работать «автономно».

    Вот такой краткий обзор, который, в целом, заставляет поглядывать именно в эту сторону, как первый спецкурс к отдельному курсу.

    THE END

    Как всегда интересны ваши мнения или тут в комментариях, или на нашем Дне открытых дверей.
    • –8
    • 11.1k
    • 8
    OTUS. Онлайн-образование
    429.82
    Цифровые навыки от ведущих экспертов
    Share post

    Comments 8

      –1
      Интересно. Подробно. Ценно.
        +2

        мое мнение — курсы бесполезны.


        p.s. промазал веткой.

          0
          Каждому своё. Кому-то наоборот курсы сильно помогают.
        +3

        Route, Doctrine, Form, Validator, Auth для начинающего разработчика важнее чем Finder и полифиллы :)

          +1

          видимо в курсы это не входит.

          0
          Статья вышла откровенно слабой.
          А вот программа курса «Разработчик PHP» порадовала — хорошее расширение кругозора даже для опытного разработчика.
            0
            Да уж, это заметили. Исправимся чем-нибудь хорошим и полезным в ближайшее время. :)

            А за доброе слово про курсы — спасибо. Как говорится: «Доброе слово — оно и кошке приятно» :)
            0

            Курс по symfony был бы как минимум любопытен

            Only users with full accounts can post comments. Log in, please.