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

Symfony *

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

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

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

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

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


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


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

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

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

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


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


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


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

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

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

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


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


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

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

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

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


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


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


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

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

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

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

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

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

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

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

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


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


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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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


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

Как мы разработали сайт для Академии «Калашников» и стали лауреатами двух конкурсов

Время на прочтение5 мин
Количество просмотров2.3K
Когда портал образовательного учреждения — электронное представительство и один из инструментов продвижения.

За разработку образовательной платформы Академии мы завоевали сразу две награды. Одна — бронза Tagline Awards 2019 в номинации «Лучший сайт для детей/юношества/молодежи». Другая — первое место на старейшем конкурсе Рунета «Золотой сайт» в номинации «Лучший сайт в Приволжском федеральном округе». Поэтому мы решили рассказать о создании портала, который только за первый месяц посетили около 2000 пользователей.

Цели и задачи клиента


«Академия Калашников» — центр дополнительного образования, который учредил концерн «Калашников». Обучение рассчитано на школьников 8-11 классов — будущие инженерные кадры для высокотехнологичных отраслей. Ребята могут выбрать одно из профильных направлений по интересам: информационные технологии, робототехника, промышленный дизайн.

В программу входит реализация совместных проектов с наставниками, развитие коммуникативных и презентационных навыков. Помимо этого, Академия проводит отдельные мероприятия для желающих.
Читать дальше →

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

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

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

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

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


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

Представляем PHP 7.4: Производительность, Возможности, Устаревший Функционал

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

PHP постоянно развивается, и только что мир увидело их последнее обновление — PHP 7.4. Производительность и скорость продолжают расти, в чём мы убедились ещё в предыдущих релизах PHP 7. Предварительная загрузка — одно из самых ярких обновлений. Эта возможность позволяет значительно ускорить выполнение скрипта и делает код чище и быстрее благодаря уменьшённому количеству строк кода.


PHP является важным элементом всемирной паутины и используется более чем на 79% всех сайтов. Известные сайты, такие как Facebook, Википедия, WordPress и многие другие используют PHP.

Мы можем увидеть что скорость веб-сайтов WordPress увеличивается вдвое, если сравним сайты, работающие на PHP 5 и 7. От последней версии больше всего выиграют сайты на WordPress.

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

Как организовать скины в Symfony

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

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


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

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

PHP-Дайджест № 173 (27 января – 10 февраля 2020)

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

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

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


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

Йошкар-Ола, вообще, айтишный город?

Время на прочтение4 мин
Количество просмотров6.7K
Именно таким вопросом мы задались, встретив ребят оттуда на казанском PHP-митапе. Оказалось, всего за месяц они смогли раскачать местное сообщество — небольшое расследование со ссылками на городские чаты, активности и каналы под катом.



А если вам точно не хватало развиртуализации, приходите 1 февраля на 2-й PHP-митап от местного чата.

PHP-Дайджест № 172 (14 – 27 января 2020)

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

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

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


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

PHP-Дайджест № 171 (1 – 13 января 2020)

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

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

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


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