С какими версиями PHP работал · PHP Backend — JobPilot

С какими версиями PHP работал

PHP Backend · 26%
Вопрос 17 / #
Пример ответа

1) Короткий ответ
Работал с PHP 7.4, 8.0, 8.1 и 8.2, с постепенным переходом на более новые версии для использования современных возможностей.

2) Ключевые версии и особенности (список)

  • PHP 7.4:

    • Типизированные свойства (public int $id;)

    • Стрелочные функции (fn($x) => $x * 2)

    • Spread operator для массивов ($merged = [...$a, ...$b])

  • PHP 8.0:

    • Атрибуты (#[Route])

    • Match-выражения (замена switch)

    • Конструктор свойства (public function __construct(public string $name) {})

    • Nullsafe-оператор ($user?->getAddress()?->getStreet())

  • PHP 8.1:

    • Enums (enum Status: string { case PENDING = 'pending'; })

    • readonly свойства (public readonly string $uuid;)

    • Фиберы (корутины) для неблокирующего I/O

  • PHP 8.2:

    • readonly классы (readonly class UserDTO)

    • Деструктуризация массивов через []

    • Типы в трейтах

5) Пример использования новых возможностей

php

Copy

Download

// PHP 8.0: Атрибуты и конструктор свойства
#[Route('/api/users', methods: ['POST'])]
class UserController {
    public function __construct(
        private UserRepository $users,
        private NotificationService $notifier
    ) {}
}

// PHP 8.1: Enum
enum UserStatus: string {
    case ACTIVE = 'active';
    case INACTIVE = 'inactive';
    
    public function label(): string {
        return match($this) {
            self::ACTIVE => 'Активный',
            self::INACTIVE => 'Неактивный',
        };
    }
}

// PHP 8.2: Readonly класс
readonly class UserCreateDTO {
    public function __construct(
        public string $email,
        public string $name
    ) {}
}

6) Follow-up вопросы

  • Какое главное преимущество PHP 8.x?Производительность JIT.

  • С какими проблемами сталкивались при миграции?Устаревшие функции.

7) Практический совет

  1. Проанализируйте свой код с помощью PHPCompatibility или Psalm, чтобы найти устаревшие конструкции перед обновлением версии PHP.

  2. Начните использовать как минимум 3 новые возможности из PHP 8.x (например, match-выражения, nullsafe-оператор, конструктор свойства) в новом коде.

PHP Backend
Junior
26%
Навигация
Какой опыт работы с Docker
Следующий: Что такое PSR
Предыдущий: Какой опыт работы с Docker

Мы используем cookie для улучшения сайта. Продолжая пользоваться сайтом, вы соглашаетесь с политикой cookie и политикой конфиденциальности.