Ръководства по версии на PHP

Проследяваме еволюцията на езика от PHP 5.3 до актуалните PHP 8.x — с практични примери и чеклисти за миграция.

  • PHP 8.5 — Конвейери и стягане на платформата

    Оператор `|>`, `#[\NoDiscard]`, closures в константни изрази, ext/uri, по-строги filter/PDO/Opcache.

  • PHP 8.4 — Property hooks и lazy objects

    Куки на свойства, асиметрична видимост, lazy objects, нов `Dom\*` API, `#[Deprecated]` — и какво да почистите преди следващата стъпка.

  • PHP 8.3 — Точност и JSON

    `#[Override]`, типизирани константи на класове, `json_validate`, `str_increment` / `str_decrement` и дребни runtime промени под натоварване.

  • PHP 8.2 — Типове и динамични свойства

    Readonly класове, DNF типове, самостоятелни `null`/`false`/`true`, `#[SensitiveParameter]`, Random разширение, deprecations за динамични свойства.

  • PHP 8.1 — Изброявания и readonly

    Enums, readonly свойства, fibers, сечение на типове, first-class callable и по-строги правила спрямо 8.0.

  • PHP 8.0 — Голямо обновяване на езика

    Именувани аргументи, match, атрибути, JIT, union типове, nullsafe `?->` и по-строго поведение на стандартната библиотека.

  • PHP 7.4 — Последният минор в клона 7.x

    Типизирани свойства, arrow functions, FFI, preload на OPcache, двойката `__serialize` / `__unserialize` и типични BC капани.

  • PHP 7.3 — Синтактична полировка преди 7.4

    Гъвкав heredoc/nowdoc, завършващи запетаи в извиквания, `JsonException`, `is_countable`, `array_key_first`/`last`, PCRE2, Argon2id и фини BC (`ArrayAccess`, референции, `continue` в `switch`).

  • PHP 7.2 — Тип object и libsodium

    `object` hint, разширяване на типове на параметри, Sodium в ядрото, LDAP EXOP, addrinfo sockets — предупреждения `count()`/`get_class(null)` и mcrypt в PECL.

  • PHP 7.1 — Nullable, void, iterable

    `?Type`, `void`, `iterable`, видимост на константи, multi-catch, `list()` с ключове — плюс `ArgumentCountError`, премахнати session INI и BC при низове.

  • PHP 7.0 — Разрив с PHP 5

    Скаларни и връщани типове, `??` и `<=>`, анонимни класове, `Closure::call`, генератори, `random_bytes`, филтриран `unserialize` и `Throwable`/BC от ерата 5.x.

  • PHP 5.6 — Вариадика и `**`

    Вариадичен `...`, разопаковане на аргументи, степенуване `**`, `use function`/`const`, константни изрази — последна спирка преди скока на ядрото в PHP 7.

  • PHP 5.5 — Генератори и `password_*`

    Генератори с `yield`, `finally`, API `password_hash`, `array_column`, `ClassName::class` — и деликатна BC при `foreach`/`list()`, която си струва регресионни тестове.

  • PHP 5.4 — Трейтове и `[]`

    Трейтове, кратък синтаксис на масиви `[]`, подсказка `callable`, `$this` в затваряния, вграден уеб сървър — премахнати magic quotes и `register_globals`, deprecated `mysql`.

  • PHP 5.3 — Пространства от имена и затваряния

    Namespaces, `use`, късно статично свързване, анонимни функции, `goto`, NOWDOC, по избор GC на цикли, Phar — и BC (нови ключови думи, deprecation на `ereg*`) далеч от навици от PHP 4.