• Будущий релиз Symfony 4.0 и проект с использованием Symfony Flex

    • Tutorial

    30 Ноября 2017 года состоится релиз Symfony 4.0



    image

    Четвертая версия имеет ряд глобальных изменений, основным из которых можно назвать переход на Symfony Flex.

    Что же такое Symfony Flex?


    Это новый подход к организации приложений на симфони, основаный на «рецептах».
    Как заявляют разработчики — это должно упросить работу с зависимостями\бандлами\пакетами и привнести больше автоматизации.
    Читать дальше →
  • SensioLabs закрыла множественные уязвимости во всех поддерживаемых версиях Symfony

      В частности, сообщается, что уязвимы следующие версии: 2.7.0 — 2.7.37, 2.8.0 — 2.8.30, 3.2.0 -3.2.13, и 3.3.0 — 3.3.12. Интересный факт: в остальных версиях эти уязвимости также могут присутствовать, но исправлений для них нет (по причине того что исправления есть только в поддерживаемых версиях).

      Для исправления уязвимостей необходимо обновиться до версий 2.7.38, 2.8.31, 3.2.14, 3.3.13, 3.4-BETA5, или 4.0-BETA5.



      И немного подробнее о самих уязвимостях:
      Читать дальше →
      • +13
      • 3,9k
      • 1
    • Использование событийной модели в Doctrine 2 + Symfony 3

        Давайте представим ситуацию: у вас есть заказ в интернет магазине (Entity). Заказ имеет некий статус. При смене статуса заказа необходимо провести кучу сопутствующих действий, например:


        • сохранить в заказе дату последнего изменения
        • записать в историю по заказу информацию о смене статуса
        • отослать письмо / sms клиенту
        • вызвать метод API службы доставки / платежной системы / партнера и т.д.

        Возникает вопрос как все это правильно организовать с точки зрения программного кода.
        Все ниже описанное справедливо для Doctrine 2 и Symfony > 3.1

        Читать дальше →
      • Sonata Import Bundle

          До сих пор одной из самых лучших админ панелей для Symfony является SonataAdminBundle, и не зря. Простая установка, конфигурация, множество фич “из коробки” и большое сообщество.

          Единственное, что в ней отсутствует, так это импорт файлов. Согласитесь, немаловажная функция.

          В сети лежит множество реализаций импорта для Sonata, но везде есть небольшие недочеты — возможность импорта только текстовых полей, а не сущностей, не работает с коллекциями, проблематично грузить огромные базы, которые могут обрабатываться не один час…

          Сегодня я хочу вам представить свою реализацию, которой успешно пользуюсь уже достаточно долго, но только сейчас руки дошли все это причесать и оформить в отдельный bundle.

          image
          Читать дальше →
        • Symfony + RabbitMQ Быстрый старт для молодых

          • Tutorial
          Всем доброго времени суток, друзья.
          Сегодня захотелось поговорить о том, как можно работать с RabbitMQ в Symfony и совсем чуть-чуть о некоторых подводных комнях. В конце я напишу парочку интересных моментов о кролике (рус. перевод «rabbit») для тех, кто совсем в танке.

          Я не буду рассказывать про сам RabbitMQ, поэтому если вы пока и этого не знаете, почитайте следующие переводы:

          Статья 1
          Статья 2
          Статья 3
          Статья 4
          Статья 5

          Не бойтесь примеров на перле или пайтоне — это не страшно, все достаточно понятно из исходного кода.

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

          Если вы уже знаете, что такое консумер и почему в нем нужно делать $em->clear() + gc_collect_cycles, а после закрывать соединение с базой данных, то, скорее всего, вы ничего нового для себя не узнаете. Статья скорее для тех, кто не хочет разбираться с AMQP протоколом, но которым нужно прямо сейчас применять очереди и выбор почему-то бездумно пал на RabbitMQ, а не тот же легковесный beanstalkd.
          Если же у вас микросервисная архитектура и вы ждете, что я расскажу вам как сварить коммуникацию между компонентами через AMQP, как красиво делать RPC, то я сам чего-то подобного очень давно жду на Хабре…
          Читать дальше →
        • DDD на практике. Проектирование списка желаний

          • Tutorial

          В интернете довольно много разрозненного материала по DDD. Если не считать синей книги, то в основном это короткие статьи с теорией, надёрганной из этой же книги, и которая мало пересекается с практикой. Возможно, конечно, что я просто плохо искал, но мне давно хотелось найти какой-нибудь цельный пример, что называется, «от и до». И я решил такой пример создать на Symfony 3 и VueJS. Сразу хочу сказать, что я изучаю DDD недавно, поэтому взял довольно простую предметную область — список желаний (wish list).

          Читать дальше →
        • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

          Подробнее
          Реклама
        • Непрерывная интеграция/внедрение приложения Symfony с помощью docker-compose и GitLab CI

          • Tutorial

          В статье я поделюсь своим опытом автоматизации всего процесса разработки приложения Symfony с нуля от настройки инфраструктуры до деплоя в production. От development- и до production-окружения для запуска приложения будет использоваться docker-compose, а все процедуры непрерывной интеграции/внедрения будут запускаться через GitLab CI/CD Pipelines в docker-контейнерах.


          Подразумевается, что вы знакомы с docker и docker-compose. Если нет или вы не знаете как его установить, я подготовил инструкцию по подготовке локального окружения разработчика. Фактически, для работы над приложением потребуется только Docker, VirtualBox и, опционально, Yarn.

          Читать дальше →
        • Джентльменский набор Doctrine 2 для Symfony 3.3.6: Создание сущности, ассоциации и рекурсивные связи

          • Tutorial


          Доброго дня, читатель!

          Что мы будем делать с вами по ходу чтения статьи


          • Создадим простые сущности
          • Немного поговорим об ORM аннотациях
          • Реализуем ассоциации:
            1. Двунаправленные связи Один к Одному
            2. Двунаправленные связи Один ко Многим
            3. Двунаправленные связи Многие ко Многим
            4. Рекурсивные связи

          • Поиграемся этими сущностями с помощью фикстур

          Читать дальше →
        • Doctrine Specification Pattern или ваш реюзабельный QueryBuilder

          • Tutorial
          Я постараюсь максимально коротко рассказать о том, как можно использовать этот паттерн с нашей любимой Doctrine на примерах и почему так делать — true.

          Давайте представим себе базовый кейс:

          1. У нас есть: сущность «Дом», сущность «Квартира в доме», сущность «Застройщик», сущность «Регион».
          2. У нас есть задача: иметь возможность получить всех застройщиков, иметь возможность получить все занятые регионы застройщиком, уметь возможность получить все дома, которые принадлежат застройщику и все доступные регионы вообще в принципе, где ведутся продажи домов.
          3. У нас есть правила от бизнеса:
          Читать дальше →
        Самое читаемое