Новое в Symfony 5.2: атрибуты PHP 8

от автора

В преддверии старта курса «Symfony Framework» предлагаем будущим студентам и всем желающим посмотреть запись вебинара на тему «Микрофреймворки: сравнение производительности Symfony и Symlex».

Также делимся переводом полезного материала.


В PHP 8 были добавлены новые интересные фичи, такие как типы объединения, match-выражения и constructor property promotion. Однако наиболее востребованной новой фичей являются встроенные атрибуты (также называемые аннотациями).

Symfony 5.2 будет включать поддержку атрибутов PHP 8 для определения роутов и необходимых зависимостей. Если вы уже используете аннотации, переход будет бесшовным:

// ДО: аннотации определенные с помощью библиотеки Doctrine Annotations use Symfony\Component\Routing\Annotation\Route;  class SomeController {     /**      * @Route("/path", name="action")      */     public function someAction()     {         // ...     } }
// ПОСЛЕ: аннотации, определенные с помощью атрибутов PHP 8 use Symfony\Component\Routing\Annotation\Route;  class SomeController {     #[Route('/path', name: 'action')]     public function someAction()     {         // ...     } }

Тот же класс Route обеспечивает поддержку аннотаций Doctrine и атрибутов PHP, поэтому вам не нужно изменять импорт класса. Единственное необходимое изменение — обновить синтаксис аннотаций, который теперь выглядит так: #[…] Вот и все! Ваше приложение теперь использует нативные атрибуты PHP, и вы можете удалить зависимости, такие как doctrine/annotations, если вы не используете их где-либо еще.

Мы также добавили атрибут #[Required], чтобы заменить аннотацию @Required и сообщить Symfony, что свойство/метод содержит требуемую зависимость:

use Symfony\Contracts\Service\Attribute\Required;  class SomeService {     #[Required]     public Bar $bar;      #[Required]     public function setFoo(Foo $foo): void     {         // ...     } }

PHP вступает в новую золотую эру с выпуском PHP 8, и Symfony будет полностью с ним совместим с первого дня. Эти атрибуты — только начало, и в ближайшие недели мы добавим еще больше (например, для валидации).


Узнать подобнее о курсе «Symfony Framework».

Смотреть запись вебинара «Микрофреймворки: сравнение производительности Symfony и Symlex».


ЗАБРАТЬ СКИДКУ

ссылка на оригинал статьи https://habr.com/ru/company/otus/blog/538482/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *