Обновить
2.9

Symfony *

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

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

Вышел PHP 8.2: разбираем главные изменения

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

Вместе с PHP-разработчиками Александром Макаровым (@SamDark), Валентином Удальцовым (@vudaltsov) и наставником Хекслета по PHP Владленом Гилязетдиновым (@funkylen) разбираемся, какие новые фичи появились в PHP 8.2, насколько эти изменения глобальны и какую роль в них сыграл проект РHP Foundation.

Эта статья — саммари стрима YouTube-канала PHP Point. Кстати, ежегодный опрос русскоязычного PHP-сообщества с итогами года запущен! Результатами поделимся в конце января.

Читать далее

Конечные автоматы на практике: Symfony Workflow

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

В университетские времена я столкнулся с такой математической абстракцией, как конечный автомат (КА). Эта модель была полезна для понимания и создания комбинированной логики. Спустя 15 лет КА вернулся в мою жизнь в виде компонента Symfony Workflow. В этой статье я расскажу, как наша команда при помощи Symfony Workflow улучшила код продукта Links.Sape, переводя его с legacy.

Читать далее

Преобразование формата ошибок с помощью встроенных событий Symfony

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

Работая над проектом, у меня возникла задача: возвращать информацию об Exception в формате JSON если client в запросе указывает поддерживаемый им MIME тип application/json используя заголовок Accept.

Простыми словами - если клиенту нужна ошибка в JSON, то дать ему JSON. В других случаях возвращать стандартную ошибку в формате HTML.

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

Читать далее

Пакетное действие SonataAdminBundle + Select2

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

Система очень гибкая и многими недооценённая, мол Sonata ограничивает администратора в действиях (представляет малый функционал панели администратора).

Если Вам нужно что-то иное, всегда можно дополнить или модернизировать уже существующие методы.

Читать далее

Тестовый контур как спасение при частых релизах

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

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

Читать далее

Демо Symfony конвертер валют

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

Недавно довелось делать тестовое задание на Symfony - конвертер валют с прямой и кросс-конвертацией. Получилось весьма неплохо, поэтому хочу поделиться с сообществом примером простого консольного приложения по всем канонам Symfony: DI, autowiring, тегирование сервисов, гибкая конфигурация, вот это вот всё. Надеюсь, это будет полезно начинающим "симфонистам".

Код приложения https://github.com/vladimirmartsul/symfony-exchange-demo

Приложение считает "обмен валюты" по прямым курсам (например, USD -> EUR), а также через "промежуточные" валюты (например, BTC -> EUR). Также есть фейковые курсы для тестов.

Курсы берутся с сайтов ecb.europa.eu (основные мировые валюты по отношению к EUR) и coindesk.com (BTC к USD). Триангуляция основана на принципах отсюда http://www.dpxo.net/articles/fx_rate_triangulation_sql.html. Для хранения данных используется БД SQLite.

Читать далее

PHP-Дайджест № 222/4 (26 апреля – 31 мая 2022)

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

Доброго дня! Представляю вашему вниманию очередной дайджест новостей из мира PHP.

В этом выпуске: новые версии PHP, новости RFC, новости популярных фреймворков, обзор интересных статей и многое другое.

Читать далее

Асинхронность, конкурентность, параллельность, многопоточность — разбираемся «по понятиям» :)

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

Эта статья представляет собой краткий (шутка!) конспект одноименного (почти) вебинара, недавно проведенного автором.

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

Ну и немного раскрыть глаза на то, что, оказывается в PHP есть и асинхронность, и многопоточность, и в общем-то не нужно ждать мифической версии PHP 10, чтобы начать их использовать уже прямо сейчас!

Лонг-рид с кодом ждёт вас!

SingleA: доменный SSO своими руками

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

SingleA — это набор Symfony бандлов, которые позволяют развернуть свой PHP’шный SSO, реализующий фреймворк SingleAuth. Тот, в свою очередь, позволяет пользователям веб-приложений, живущих на общем домене (2 уровня и выше) перестать повторно ходить на SSO после того, как они один раз уже залогинились (даже ради простого редиректа).

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

Читать далее

PHP Дайджест № 222/3 (26 марта – 25 апреля 2022)

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

Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.

Однако я взял на себя смелость временно продолжить дело Романа и написать новый дайджест за тот месяц, что прошел с выхода последнего.

Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.

Читать далее

PHP Дайджест № 222/2 (22 февраля – 25 марта 2022)

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

Дисклеймер: Нет, это не дайджест авторства Романа Пронского. К сожалению, у меня нет достоверной информации - будет ли выходить его дайджест далее.

Однако я взял на себя смелость временно продолжить дело Романа и написать новый дайджест за тот месяц, что прошел с выхода последнего.

Если Роман сможет и захочет далее продолжать свой дайджест - он сам решит, как использовать мой текст: взять в свой проект, как его часть или нет. На всякий случай я ставлю нумерацию дайджеста через дробь. Однако не претендуя при этом на продолжение оригинального проекта.

Читать далее

Готовимся к собеседованию по PHP: Что такое «DI», «Container», «Auto-wiring» за семь простых шагов

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

Статья написана для начинающих разработчиков на языке PHP, чтобы помочь им усвоить понятия, нужные для понимания того, как устроены и работают современные фреймворки на PHP: Dependency Injection, Container, Auto-wiring.

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

Статья продолжает цикл статей под условным названием "Готовимся к собеседованию".

Читать далее

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

PHP Дайджест № 222 (7 – 21 февраля 2022)

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


Подборка свежих новостей, инструментов, видео и материалов из мира PHP.

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

PHP Дайджест № 221 (24 января – 7 февраля января 2022)

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

Подборка свежих новостей, инструментов, видео и материалов из мира PHP.

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

PHP Дайджест № 220 (10 – 24 января 2022)

Время на прочтение3 мин
Охват и читатели12K
Картинка Vincent Pontier.

Подборка свежих новостей, инструментов и материалов из мира PHP.

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

Symfony Panther: зверь в мире тестирования

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

Тестирование приложения — это не самое простое занятие на земле, не самый быстрый процесс и не самая захватывающая часть процесса разработка приложения. Но это необходимо. Вы не можете позволить себе рисковать стабильностью вашего приложения — если оно начнет крашиться, то вы потеряете пользователей, а заодно и деньги. Добавление нового кода в вашу продукцию не должно быть поводом для стресса. По этой причине и существуют тесты, которые проверяют отсутствие регрессии вашего приложения. Если ваш продукт покрыт тестами (и если вы написали хорошие тесты, что в свою очередь является еще одной обширной темой), вы будете намного увереннее добавлять новые фичи и исправления в свой продукт, не опасаясь что-нибудь сломать.

Читать далее

Рейт-лимитинг ваших Symfony API

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

В процессе разработке у вас может возникнуть необходимость наложить на API какой-нибудь кастомный рейт-лимит (то есть ограничить количество запросов для пользователей API). В этой статье я покажу, как можно объединить компонент symfony/rate-limiter со стандартными контроллерами.

Читать далее

PHP Дайджест № 219 (1 – 10 января 2022)

Время на прочтение3 мин
Охват и читатели13K
Фото David Stockton.

Подборка свежих новостей, инструментов и материалов из мира PHP.

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

Большой PHP-опрос: первые 2к ответов и призы участникам

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

В декабре стартовал второй ежегодный опрос русскоязычного PHP-мира. Параллельно мы собрали ворох подарков, которые разыграем во второй половине февраля при подведении итогов исследования — их фото и список под катом. 

Читать далее