20 сентября 20
На этой неделе были выпущены версии обслуживания Symfony 6.4.46, 7.4.19 и 8.1.7. Тем временем мы запустили серию статей «Новое в Symfony 8.2», а на SymfonyCasts вышел новый курс по основам безопасности Symfony (Symfony Security: The Basics). Кроме того, мы напомнили, что осталось всего несколько дней до окончания продажи обычных билетов на SymfonyCon Warsaw 2026.
Основные моменты разработки Symfony
На этой неделе было принято 141 пул-реквест (103 в коде и 38 в документации) и закрыто 59 задач (27 в коде и 32 в документации). Без учёта слияний, 41 автор внес свои изменения (добавления и удаления). Подробности смотрите в разделе кода и документации.
- d7ff22d: [Form] описание опций расширения типа, зарегистрированного для расширения типа
- c59e1fa: [TwigBridge] объединение блоков тем форм с помощью BlockChain в Twig, если это доступно
- 41a8d9d: [HttpFoundation] устранение неоднозначности, из-за которой HeaderUtils::split() выполняет возврат (backtrack)
- 6f81740: [Security] пояснение того, почему вход по токену remember-me считается интерактивным
- 537fc0a: [HttpFoundation] исправление удаления порта для перенаправленных адресов IPv4-mapped IPv6
- 63fe071: [Serializer] кэширование MetadataAwareNameConverter для каждого экземпляра
- 8593e50: [HttpClient] добавление недостающих немаршрутизируемых диапазонов в NoPrivateNetworkHttpClient
- a9246b5: [Security] исправление типа, объявленного для диспетчера событий
- 5f59304: [Security] документирование того, что проверки пользователей запускаются при каждой аутентификации
- ad13f2e: [Yaml] исправление смещения строк, передаваемого в парсеры вложенных блоков
- cd198fd: [Notifier] исправление типа диспетчера событий для транспортов FakeChat
- a3a4fc8: [FrameworkBundle] кэширование метаданных сериализатора в режиме отладки при их загрузке из файлов маппинга
- 8dd02c1: [Console] исправление квадратичного форматирования не-ASCII контента
- b25e0d7: [Lock] документирование того, что только ключ-владелец может освободить блокировку
- 2eb4033: [ErrorHandler] остановка рекурсии, если логгер продолжает генерировать исключения
- c810597: [ErrorHandler] использование трассировки фатальных ошибок, предоставляемой PHP 8.5
- abfeda3: [Messenger] приведение PhpSerializer::getMessageType() в соответствие с unserialize()
- 2195be8: [Messenger] исправление keepalive для транспорта Amazon SQS
- 58c855d: [Messenger] сохранение keepalive для Beanstalkd, поднятого во время выполнения команды
- 084e34f: [Messenger] сохранение воркера запущенным при сбое keepalive
- 3b3fff2: [Messenger] удержание сигналов до фактической отправки запроса SQS
- 59121cd: [Validator] исправление игнорирования параметров кодека и контейнера в ограничении Video
- e9d4b77: [KeyManagement] добавление нового компонента для систем управления ключами (Key Management Systems)
- 2a4c1c3: [Form, PropertyInfo] снижение затрат на определение "empty_data" и вызов getWriteInfo()
- c293120: [FrameworkBundle] добавление опции "configure_container" в WebTestCase::createClient()
- 24a3fb6: [Messenger] вынесение логики неудачных сообщений из команд консоли
- 013a20b: [FrameworkBundle, Messenger] добавление MessengerAssertionsTrait для тестирования транспортов в памяти
- c7b200e: [Security, SecurityBundle] добавление IS_AUTHENTICATED_RECENTLY для требования свежей аутентификации
- 322f9e1: [FrameworkBundle, SecurityBundle] удаление неиспользуемых атрибутов тега "extended-type"
- c4b9e82: [Security] проставление метки auth_time из claims токена OIDC ID
- 490dc46: [Form] вынесение определителя "empty_data" и определение через простой property_path
- 2f2c543: [Translation] извлечение сообщений из тернарных выражений и выражений объединения с null
- 3187ea7: [Security] принятие решения IS_AUTHENTICATED_RECENTLY через определитель доверия (trust resolver)
- cb848dc: [Security, SecurityBundle] добавление точки входа для повторной аутентификации
- bdd9eb6: [Security, SecurityBundle] разрешение настройки запроса авторизации OIDC для каждого отдельного запроса
- fadcfb0: [Security] предоставление возможности OidcLoginAuthenticator запускать повторную аутентификацию
- 11e7cbc: [Form] добавление BoundsType для отображения нижней и верхней границ
- b9205a2: [Messenger] добавление поддержки повторных попыток и транспорта сбоев для синхронного транспорта
- afd026f: формализация зависимости от doctrine/persistence
- ffa9927: [EventDispatcher] добавление CompiledEventDispatcher
- e2a604c: [Security] добавление CheckRefreshedUserEvent для расширения проверок изменения пользователя
- 345240c: [Security] запись того, какие методы аутентификации были подтверждены и когда
- 5c6f287: [Security] добавление IS_AUTHENTICATED_VERY_RECENTLY, определяемого через trust resolver
- c8d6e97: [Security] добавление AuthenticationMethodBadge для указания аутентификатором проверенных им методов
- 46d835c: [Scheduler, Security] прекращение мутации диспетчера событий во время выполнения
- a270754: [EventDispatcher] обертывание слушателей во время вызова в трассируемом диспетчере
- e3ae404: [EventDispatcher, Messenger] объявление устаревшим изменения диспетчера событий контейнера во время выполнения
- 82322d9: [DependencyInjection] объявление устаревшим псевдонима автосвязывания (autowiring alias) EventDispatcherInterface
- 4f3b5c4: [Contracts, EventDispatcher] добавление ListenerIntrospectionInterface
- c33231f: [Security] требование наличия "sub" в токене OIDC ID и сокращение nonce
- 6096638: [Security] запуск проверки пользователя при его обновлении из сессии
- dc74eb3: [FrameworkBundle, Messenger, Scheduler] добавление framework.scheduler.use_messenger_routing
- 6ad354e: [Serializer, Validator] пропуск файлов маппинга для классов, которые они не маппят
- 11aca3b: [DependencyInjection] дамп лога компилятора во всех окружениях
- 7e53a7c: [Mailer] поддержка конфигурации тенантов через DSN и заголовок X-SES-TENANT
- 82ae0e2: [ObjectMapper] вывод целевого вложенного класса из типа свойства назначения
- 2a56495: [HttpFoundation] предоставление доступа к ключам параметров как к строкам
- 83895d3: [HttpFoundation] предоставление доступа к ключам заголовков и атрибутов как к строкам
- b927689: [AssetMapper] добавление опции "asset_mapper.metadata_dir"
- 9ead931: [Mailer] сохранение отображаемых имен для адресов полезной нагрузки PufferPost
- 81acb02: [Validator] добавление ограничения Audio для валидации аудиофайлов
- 7367c92: [ObjectMapper] добавление фабрик метаданных свойств
- 6df7f70: [Tui] обертывание меток и описаний списка выбора в выровненные колонки
Новые задачи и пул-реквесты
- [KeyManagement] Добавление RedundantKms, клиента, оборачивающего несколько провайдеров
- [Config][DependencyInjection] Добавление NodeDefinition::inlineEnvVars() для инлайнинга переменных окружения при компиляции контейнера
Вакансии Symfony
Вот некоторые из самых свежих предложений о работе с Symfony:
- Symfony Developer в Steward
Частичная занятость / Временная — $8,700 – $13,000 / месяц
Удаленная работа
Посмотреть детали - Symfony Developer в ATH
Контракт / Фриланс — €25 – €50 / час
Удаленная работа
Посмотреть детали
Вы можете бесплатно опубликовать вакансию Symfony на сайте symfony.com.
Обновления SymfonyCasts
SymfonyCasts — это официальный способ изучения Symfony. Выберите трек для пошагового прохождения более чем 100 видеокурсов по Symfony, PHP и JavaScript.
На этой неделе на SymfonyCasts появились следующие обновления:
О нас пишут
- Идеальные GitHub Actions для приложений Symfony
- У вашей сущности Doctrine больше одного таймера GDPR
- Symfony 8.2: Формы на основе атрибутов сокращают бойлерплейт для простых DTO
- Postgres RLS в Symfony: три зеленых изоляционных теста и UPDATE, переносящий счета тенанта 1 в книги тенанта 2
- Удаление данных по GDPR в Doctrine — это не просто EntityManager::remove()
- Новое в EasyAdmin 5.6: Навыки ИИ-агента
- Messenger и JsonPath в Symfony 8.1: практические улучшения
- Symfony Workflow: как реализовать сложную бизнес-логику через состояния и переходы
Предстоящие мероприятия Symfony
- Symfony Meetup Köln: Кельн, Германия (24 сентября 2026 г.)
- Sylius France Community Meetup by ACSEO: Экс-ан-Прованс, Франция (28 сентября 2026 г.)
- Meetup #1 - Symfony Québec: Монреаль, Канада (28 октября 2026 г.)
Комментарии (0)
Пока нет комментариев — будьте первым.