Как стать автором
Поиск
Написать публикацию
Обновить
4.8

Symfony *

Свободный фреймворк, написанный на PHP5

Сначала показывать
Порог рейтинга
Уровень сложности

PHP-Дайджест № 135 (9 – 23 июля 2018)

Время на прочтение4 мин
Количество просмотров13K

В выпуске: PHP 7.3 alpha 4, ReactPHP 1.0 LTS и другие релизы, свежее предложение «Namespace Visiblity for Class, Interface and Trait» из PHP Internals, ведеозаписи докладов и вебинаров, порция полезных инструментов, и многое другое.
Приятного чтения!


Опыт Rambler Group: как мы начали полностью контролировать формирование и поведение фронтовых React компонентов

Время на прочтение13 мин
Количество просмотров9.4K

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

На наш взгляд нам удалось реализовать неплохой пример сбалансированного по сложности и профиту решения, который мы успешно используем в production на основе Symfony и React.
добро пожаловать под кат

PHP-Дайджест № 133 (10 – 24 июня 2018)

Время на прочтение3 мин
Количество просмотров14K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Alpha 2, о планах на PHP 8.0, Typed Properties и другие RFC из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!

Читать дальше →

PHP-Дайджест № 132 (27 мая – 10 июня 2018)

Время на прочтение4 мин
Количество просмотров16K

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 alpha 1, Yii 3.0 alpha 1 и другие релизы, свежая книга по асинхронному PHP, видеозаписи докладов, порция полезных инструментов, и многое другое. Приятного чтения!

Читать дальше →

Обзор Symfony компонента: Config

Время на прочтение7 мин
Количество просмотров9.7K

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

Читать дальше →

PHP-Дайджест № 131 (13 – 27 мая 2018)

Время на прочтение3 мин
Количество просмотров16K

Свежая подборка со ссылками на новости и материалы. В выпуске: фреймворк и статьи по Serverless PHP, доклад Расмуса Лердорфа о PHP в 2018 и другие видео, предложение из PHP Internals, порция полезных инструментов, и многое другое. Приятного чтения!
Читать дальше →

PHP-Дайджест № 130 (1 – 13 мая 2018)

Время на прочтение2 мин
Количество просмотров18K

Свежая подборка со ссылками на новости и материалы. В выпуске: конференция PHP fwdays'18, объявлены релиз-менеджеры PHP 7.3, предложение из PHP Internals, видеозаписи с прошедших митапов, порция полезных инструментов, и многое другое.

Приятного чтения!
Читать дальше →

DevConf: из шаурмы в Symfony или миграция legacy

Время на прочтение4 мин
Количество просмотров5.6K
Под занавес прошлогоднего DevConf Артем Дегтярь и Павел Степанец рассказали как они мигрировали ERP-систему написанную на «голом» PHP5.3, работающую на винде, в Symfony + PHP7, и построили на его основе облачный сервис в сфере b2b. Видео доступно по ссылке доклада. А я представлю текстовый, немного сжатый, вариант.


Мы работали над большой системой, которая позволяла создавать заявки и менять статусы, плюс биллинг, учет ТМЦ и много всего. Сегодня мы расскажем как рефакторили эту систему, мигрировали ее в Symfony. Первоначально система была написана на чистом PHP, и имела много «особенностей». Например, этот пятиуровневый тернарник на слайде весьма оригинально работал с датой, пришедшей от юзера.
Читать дальше →

Matthias Noback Об Идеальной Архитектуре — Слои, Порты и Адаптеры (Часть 3 — Порты и Адаптеры)

Время на прочтение4 мин
Количество просмотров13K

Matthias Noback (автор A year with Symfony) опубликовал цикл из трех статей, в котором описал свои взгляды на идеальную архитектру корпоративных приложений, сформировавшуюся за долгие годы практики.Первая часть является вводной и не представляет особого интереса(можно ознакомиться в оригинале). Перевод второй — по ссылке. И так как он вызвал БЕШЕННЫЙ ажиотаж(целых ДВА человека подискутировали со мной в комментах), то не перевести третью было бы преступлением.


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


  • Домен
  • Прикладной слой
  • Инфраструктура

Сейчас, подробно рассмотрим инфраструктурный слой.

Читать дальше →

DoctrineSolrBundle — поиск по Doctrine entity на базе Solr в Symfony2/3

Время на прочтение4 мин
Количество просмотров3.3K

DoctrineSolrBundle


Добрый день, хочу представить свой symfony 2 бандл для автоматической синхронизации Doctrine entity в Solr и последующим поиском. Бандл предназначен для работы с Solr на уровне Doctrine entity и позволяет избежать написания низкоуровневых запросов в solr. Процесс установки и подробную документацию можно посмотреть на github.


Возможности


Реализованы основные (не все) возможности поиска стандартного парсера запросов Solr :



Также реализована поддержка SuggestComponent

Читать дальше →

Matthias Noback Об Идеальной Архитектуре — Слои, Порты и Адаптеры(Часть 2 — Слои)

Время на прочтение7 мин
Количество просмотров16K

В 2017 году Matthias Noback (автор A year with Symfony) опубликовал цикл из трех статей, в котором описал свои взгляды на идеальную архитектру корпоративных приложений, сформировавшуюся за долгие годы практики.Первая часть является вводной и не представляет особого интереса(можно ознакомитсья в оригинале). Переводом второй является данная статья. Перевод третьей будет доступен в скором времени.


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

Читать дальше →

Исчерпывающие бенчмарки PHP 5.6, 7.0, 7.1, 7.2 и HHVM (2018)

Время на прочтение12 мин
Количество просмотров32K


Каждый год мы стараемся тщательно измерять производительность разных версий PHP и HHVM на различных платформах. В этом году мы измерили четыре версии PHP и HHVM на 20 платформах/конфигурациях, включая WordPress, Drupal, Joomla!, Laravel, Symfony и многие другие. Также мы протестировали популярные решения для электронной коммерции вроде WooCommerce, Easy Digital Downloads, Magento and PrestaShop.


Мы всегда рекомендовали пользователям WordPress не пренебрегать преимуществами свежайших поддерживаемых версий PHP. Не только ради безопасности, но и ради повышения производительности. Причём речь идёт не только о WordPress, это по большей части справедливо для всех платформ. И сегодня мы продемонстрируем, как PHP 7.2 одерживает сокрушительную победу!

Читать дальше →

PaEndpointBundle — альтернатива контроллерам Symfony

Время на прочтение3 мин
Количество просмотров3.4K
Основным способом для обработки запросов в Symfony являются контроллеры. С возможностью описывать роутинг непосредственно в контроллерах (аннотациями) жизнь стала еще лучше. Но использование аннотаций при наследовании контроллеров вызывает проблемы — для каждого дочернего контроллера необходимо заново прописывать роутинг. А ведь в crud-приложения типична ситуация, когда есть базовый контроллер и множество дочерних, которые наследуют логику базового контроллера, и роуты для которых можно было бы генерировать автоматически.
Читать дальше →

Ближайшие события

Серия #notNULL — Twig

Время на прочтение2 мин
Количество просмотров4.5K
Приветствую, Хабрасообщество!

Давно я забросил переводы тех. литературы по Objective-C / Swift и несколько непереведённых глав из Core Data остались далеко в черновиках. Однако любовь к переводам, разработке и обучению не угасла — изменился подход и мысли о том, как можно всё это упаковывать и организовывать.

Я влюбился в формат обучающих видео.

Малюсенький CI вашего Symfony проекта за 2 минуты

Время на прочтение2 мин
Количество просмотров11K
Без воды о том, как за 10 минут сделать:

  1. Проверяем ваш composer.json на серьезные и несерьезные ошибки, вроде неоптимального autoload
  2. Проверяем ваш composer.lock на security уязвимости в пакетах
  3. Проверяем вашу базу данных, что ничего не забыли
  4. Проверяем ваши YAML файлы
  5. Проверяем Coding Style по Symfony
Читать дальше →

Symfony Flex Private Recipes: создание, настройка и использование

Время на прочтение3 мин
Количество просмотров9.4K
Привет, Хабр.

Предлагаю Вашему вниманию краткую статью-инструкцию по созданию, настройке и использованию личных рецептов (private recipes). Для этого нам понадобится: проект, репозиторий с бандлом, репозиторий с нашими рецептами.

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

Бандл: symfony-acme-bundle
Рецепты: symfony-recipes
Читать дальше →

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

Время на прочтение3 мин
Количество просмотров8.9K

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



image

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

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


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

SensioLabs закрыла множественные уязвимости во всех поддерживаемых версиях Symfony

Время на прочтение2 мин
Количество просмотров5.3K
В частности, сообщается, что уязвимы следующие версии: 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.



И немного подробнее о самих уязвимостях:
Читать дальше →

Использование событийной модели в Doctrine 2 + Symfony 3

Время на прочтение6 мин
Количество просмотров23K

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


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

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

Читать дальше →

Sonata Import Bundle

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

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

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

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

image
Читать дальше →