PHPMiddleExperience

Какие версии, возможности или изменения экосистемы PHP важно учитывать на собеседованиях в 2026 году?

В 2026 году важны PHP 8.3–8.4: typed class constants, property hooks, asymmetric visibility, улучшенный JIT, Fibers для async и обязательный Composer 2 с platform requirements.

Актуальные версии PHP в 2026 году

На момент 2026 года активно поддерживаются PHP 8.2 (security fixes до декабря 2026), PHP 8.3 (active support) и PHP 8.4 (вышел в ноябре 2024, active support). PHP 8.1 перешёл в security-only режим. PHP 7.x — EOL, использование в новых проектах недопустимо.

Ключевые изменения PHP 8.x, важные на интервью

  • PHP 8.0: match expression, named arguments, nullsafe operator ?->, constructor property promotion, str_contains() / str_starts_with() / str_ends_with(), JIT компилятор, union types.
  • PHP 8.1: Enum, readonly properties, Fibers, intersection types, never return type, array_is_list().
  • PHP 8.2: readonly classes, Disjunctive Normal Form (DNF) types, true/false/null как standalone types, deprecation динамических свойств.
  • PHP 8.3: Typed class constants (const int VERSION = 1), json_validate(), readonly improvements, #[Override] атрибут, улучшения в Randomizer.
  • PHP 8.4: Property hooks (вычисляемые свойства с get/set), asymmetric visibility (public protected(set)), new без скобок в выражениях, обновлённый DOM API.

Примеры современного синтаксиса

<?php
declare(strict_types=1);

// PHP 8.1: Enum + readonly
enum Status: string {
    case Active = 'active';
    case Inactive = 'inactive';
}

readonly class OrderId {
    public function __construct(public int $value) {}
}

// PHP 8.3: typed class constant
class Config {
    const string APP_ENV = 'production';
}

// PHP 8.4: property hooks
class Temperature {
    public float $celsius {
        get => $this->kelvin - 273.15;
        set => $this->kelvin = $value + 273.15;
    }
    public function __construct(private float $kelvin) {}
}

Экосистема и инструменты

  • Composer 2.x — обязателен, поддерживает platform requirements и параллельную загрузку.
  • PHPStan 2.x — статический анализ, уровни 0–9, интеграция с Blade/Twig через extensions.
  • Rector 2.x — автоматический апгрейд кода, правила для каждой версии PHP.
  • PHP-CS-Fixer 3.x — форматирование по PSR-12 и собственным ruleset.
  • Symfony 7.x / Laravel 11.x — актуальные мажорные версии фреймворков, требуют PHP 8.2+.
  • FrankenPHP — новый PHP-сервер на Go с worker mode (аналог Swoole, но без расширений).

Что устарело и опасно упоминать как текущее

  • Функции mysql_* — удалены в PHP 7.0, использовать PDO или MySQLi.
  • ereg_* regex функции — удалены в PHP 7.0.
  • Динамические свойства без #[AllowDynamicProperties] — deprecated в 8.2, будут выдавать ошибку.
  • Передача null в non-nullable параметры — deprecated в 8.1, Error в 9.0.

Подводные камни

  • JIT в PHP даёт прирост только для CPU-intensive кода (математика, ML-инференс), для типичных web-приложений с IO прирост минимален.
  • Fibers — не многопоточность: один поток, кооперативное переключение; ReactPHP и Amp используют event loop поверх Fibers.
  • Readonly class в PHP 8.2 не позволяет клонировать с изменёнными свойствами без обходных решений.
  • Property hooks в PHP 8.4 несовместимы с некоторыми ORM (Doctrine требует обновления маппинга).
  • DNF types (PHP 8.2) не поддерживаются в PHPStan ниже 1.9 — важно проверить версию анализатора.
  • Asymmetric visibility (PHP 8.4) конфликтует с reflection-based serialization в старых версиях Symfony Serializer.
  • FrankenPHP worker mode держит приложение в памяти между запросами — нужно явно сбрасывать состояние, как в Swoole.
  • Composer platform.php в composer.json должен соответствовать реальной версии PHP в production, иначе зависимости резолвятся некорректно.

What hurts your answer

  • Рассказывать устаревший подход как актуальную практику
  • Не отличать личный legacy-опыт от состояния экосистемы в 2026 году
  • Игнорировать migration notes и deprecated API

What they're listening for

  • Понимает актуальное состояние PHP
  • Отличает современные практики от legacy-подходов
  • Учитывает миграции, deprecated API и совместимость

Related topics