Обновить
3.1

Symfony *

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

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

PHP 25 лет: краткая история языка и скидка 50% на PhpStorm

Время на прочтение2 мин
Охват и читатели11K
Привет, Хабр! Сегодня особенный день — ровно 25 лет назад Расмус Лердорф представил миру PHP. В день рождения языка мы хотим поблагодарить вас за годы его поддержки.

Все мы ждем релиза PHP 8, который запланирован на этот декабрь. А пока предлагаем вспомнить достижения PHP-сообщества за прошедшие 25 лет: мы собрали в большой таймлайн все самые важные события из истории языка.

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

PHP-Дайджест № 181 (18 мая – 1 июня 2020)

Время на прочтение5 мин
Охват и читатели12K
Фото Erika Heidi

Свежая подборка со ссылками на новости и материалы. В выпуске: 3 новых и 4 принятых RFC предложения для PHP 8, включая объявление свойств в конструкторе, о блокировке PHP-ML из-за плагиата, почему разработчики ненавидят PHP, порция полезных инструментов, видео и многое другое.

Приятного чтения!


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

PHP-Дайджест № 180 (4 – 18 мая 2020)

Время на прочтение5 мин
Охват и читатели13K

Свежая подборка со ссылками на новости и материалы. В выпуске: 2 принятых, 2 отклоненных и 6 новых RFC предложений из PHP Internals, обзор PHP 8, порция полезных инструментов, онлайн мероприятия, видео, подкасты и многое другое.

Приятного чтения!

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

Как переиспользовать код с бандлами Symfony 5? Часть 7. Релизный цикл, установка и обновление

Время на прочтение10 мин
Охват и читатели2.6K

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


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


В этой статье:


  • README.md
  • Установка: через composer, рецепты Flex, консольные команды
  • Релизный цикл, выпуск новых версий
  • Семантическое версионирование
  • Фиксация изменений в CHANGELOG.md
Читать дальше →

Проклятая старая CRM

Время на прочтение5 мин
Охват и читатели4.3K
Весь прошлый год наши ребята допиливали CRM 2.0 с BPMS Camunda и всего десятью процессами вместо сотен статусов, а затем старались раскатать ее на пользователей и сервисы, ничего не уронив. Надеюсь, окончательно выпилив первую црм-ку (старейшую часть всего Skyeng) из нашей экосистемы, они поделятся граблями и находками здесь.



А пока, заинтересовавшись темой, я нашел похожий случай — и решил расспросить Дмитрия Косова из Финама про их опыт отказа от наследия ранних 2010-х.

Все доклады бесплатной онлайн-части PHP Russia c иностранными докладчиками можно будет смотреть в переводе

Время на прочтение1 мин
Охват и читатели2.3K
В конце апреля организаторы пошли на очень крутой шаг, сделав лайв 13 мая с англоязычными докладами открытым. Но английским хорошо владеют не все, а акцент, темп речи докладчика, параллельное чтение слайдов могут создать сложности в восприятии на слух.



Поэтому Skyeng нашли пару ребят, которые уже синхронно переводили на русский ИТ-конференции (один даже начинал как разработчик), а команда Онтико быстро придумала технически рабочий вариант с двумя языковыми потоками на выбор в онлайн-трансляции. Осталось не облажаться)

Зарегистрируйтесь заранее и подключайтесь в среду, чтобы узнать, что получится: в крайнем случае, перейдете на оригинальную аудиодорожку. Доклады и опции онлайн-общения обещают быть огненными.
Под катом - небольшой FAQ и голосовалка

Как переиспользовать код с бандлами Symfony 5? Часть 6. Тестирование

Время на прочтение8 мин
Охват и читатели3.5K

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


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

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

PHP-Дайджест № 179 (21 апреля – 4 мая 2020)

Время на прочтение5 мин
Охват и читатели13K

Свежая подборка со ссылками на новости и материалы. В выпуске: 4 принятых RFC предложения для PHP 8, включая атрибуты (аннотации / декораторы), порция полезных инструментов, онлайн-конференции и митапы, видео, подкасты и многое другое.

Приятного чтения!


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

Как переиспользовать код с бандлами Symfony 5? Часть 5. Конфигурация

Время на прочтение8 мин
Охват и читатели3.4K

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


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


  • Параметры DI-контейнера и их переопределение
  • Файл конфигурации бандла
  • Работа с конфигурацией
Читать дальше →

Как переиспользовать код с бандлами Symfony 5? Часть 4. Расширение бандла в хосте

Время на прочтение10 мин
Охват и читатели6.2K

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


Проектируя бандл, надо думать, что должно быть инкапсулировано внутри него, а что — доступно для пользователя. Должен ли бандл иметь фиксированную функциональность или быть гибким и позволять себя расширять? Если требуется гибкость, то нужно предусмотреть какие-то точки-интеграции для расширения бандла, его интерфейс.


Попробуем предусмотреть такие точки в нашем демо-приложении. В этой статье:


  • Подключение пользовательской логики к бандлу
  • Работа с тегами
  • Compiler Pass
  • Автоконфигурация сервисов
Читать дальше →

Как переиспользовать код с бандлами Symfony 5? Часть 3. Интеграция бандла с хостом: шаблоны, стили, JS

Время на прочтение8 мин
Охват и читатели2.5K

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


В предыдущей статье мы вынесли в бандл основной код и шаблоны, настроили роутинг и подключение сервисов в Dependency Injection контейнер. В этой статье будем встраивать бандл в приложение-хост:


  • Интеграция шаблонов: 2 пути
  • Интеграция шаблонов: независимый модуль
  • Подключение стилей бандла в сборку
  • Интеграция шаблонов: встраивание в шаблоны хоста
  • Переопределение стилей и JS
Читать дальше →

Как переиспользовать код с бандлами Symfony 5? Часть 2. Выносим код в бандл

Время на прочтение8 мин
Охват и читатели4.4K

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


В предыдущей статье мы создали минимальный бандл из двух файлов и подключили его в проект.


В этой статье:


  • Перенос кода в бандл
  • Dependency Injection: регистрация сервисов бандла в DI-контейнере
  • Перенос контроллеров и настройка роутинга
  • Механизм определения путей к ресурсам
  • Перенос шаблонов в бандл
Читать дальше →

PHP-Дайджест № 178 (6 – 21 апреля 2020)

Время на прочтение5 мин
Охват и читатели12K

Свежая подборка со ссылками на новости и материалы. В выпуске: Composer 2.0 Alpha и другие релизы, 5 новых и одно принятое RFC предложение из PHP Internals, а также обновленные атрибуты на голосовании, порция полезных инструментов, подкасты, интервью и многое другое.

Приятного чтения!

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

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

Как переиспользовать код с бандлами Symfony 5? Часть 1. Минимальный бандл

Время на прочтение8 мин
Охват и читатели14K

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


В первой части:


  • Зачем нужны бандлы
  • Example Project: Calendar
  • Настраиваем окружение: 2 способа разработки
  • Создаем минимальный бандл
  • Подключение бандла в проект
Читать дальше →

Основы кастомной валидации в Symfony 4/5 с примерами

Время на прочтение5 мин
Охват и читатели10K

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


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

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

PHP-Дайджест № 177 (23 марта – 6 апреля 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: расписание релиза PHP 8, анализ эргономики объектов в PHP и 5 свежих RFC из PHP Internals, немного полезных инструментов, видео, подкасты и многое другое.

Приятного чтения!


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

Временная локализация на Symfony 4 + Twig

Время на прочтение4 мин
Охват и читатели2.9K
Потребность во временной локализации продукта возникает, когда продукт вырастает до таких масштабов, при которых необходима работа в разных временных зонах (очевидность). Хочется описать вариант простой идеи решения этого кейса.

Предыстория такова: разрабатывали нишевую CRM/ERP-систему, а потом нам сказали, что буквально завтра с этой системой будут работать по франшизе от Владивостока до Калининграда. К сожалению, изначально такой сценарий продуман не был, и мы начали изучать, как сделать это сделать с минимальными затратами и максимальным удобством.
Читать дальше →

PHP-Дайджест № 176 (11 – 23 марта 2020)

Время на прочтение4 мин
Охват и читатели14K

Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP и Composer 1.10, переносы конференций, 3 новых RFC предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.

Приятного чтения!


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

Митапы PHP-сообществ в марте, которые переходят в онлайн или переносятся

Время на прочтение3 мин
Охват и читатели1.7K


С осени мы ведем список встреч вокруг PHP в разных уголках страны, а Роман pronskiy Пронский публикует ближайшие из них короткой строкой в своем замечательном дайджесте. В этот раз хотим пойти чуть дальше и рассказать чуть больше о каждом сообществе.
Читать дальше →

PHP-Дайджест № 175 (25 февраля – 10 марта 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: релизы Laravel 7 и CodeIgniter 4, атрибуты v2 и другие RFC-предложения из PHP Internals, порция полезных инструментов, видео, подкасты и многое другое.

Приятного чтения!


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