TGViewer
PHP Digest PHP Digest @phpdigest · 8.18K subscribers
Post #120 8.72K
Будущее развитие PHP

https://github.com/nikic/php-rfcs/blob/language-evolution/rfcs/0000-language-evolution.md

Никита опубликовал черновик RFC с предложением установить механизм введения в язык новых глобальных или ломающих обратную совместимость фич. И рассмотрел возможные пути решения:

1. Новый язык (P++)
При всех своих недостатках, одно из преимуществ тут в том, что можно делать совершенно радикальные изменения. Например, убрать $ из переменных. Но мы помним судьбу Perl/Raku.

2. Editions (редакции/издания)
Идея позаимствована из Rust, в разработку которого Никита тоже вовлечён.
По сути, это набор обратно-несовместимых изменений, объединенных под одним именем. Такой вариант интересен как с технической так и с маркетинговой точки зрения.

3. Директивы declare на каждую фичу
То есть на каждое крупное изменение вводить отдельную директиву по типу strict_types.
___

Поскольку против нового языка уже неофициально проголосовали и единогласно отмели идею, то дальше Никита рассматривает технические аспекты реализации единшов/директив.
Варианты тут такие:

• Текущая реализация с объявлениями в каждом файле
declare(strict_types=1) или в случае едишнов declare(edition=2020)

• Новый открывающий тег
Например, для едишнов: <?php2020

• Указание директив для пространств имён (RFC)
namespace_declare('Vendor\Lib', [
'strict_types' => 1,
'no_dynamic_properties' => 1,
// ...
]);

• Ввести понятие пакета в PHP
Прототип этого варианта оформлен в виде пул-реквеста.
Пакет надо будет явно объявлять в каждом файле.

<?php

package "nikic/php-parser";

namespace PhpParser\Node;

• Что-то на основе файловой системы
Например добавлять файл .package.php в корне пакета, который будет содержать нужную метаинформацию.

В конце Никита подводит выводу, что оптимальный вариант — это едишны + declare директивы в каждом файле.
GitHub php-rfcs/rfcs/0000-language-evolution.md at language-evolution · nikic/php-rfcs Experimental repo for GitHub based RFC workflow. For now, please don't submit PRs. - php-rfcs/rfcs/0000-language-evolution.md at language-evolution · nikic/php-rfcs
More from @phpdigest
  1. Jul 8, 2026Первый официальный State of PHP опрос открыт: https://jb.gg/php-survey-2026 В сообществе у…
  2. Jun 16, 2026Swoole AOT переименовали в TypePHP https://mp.weixin.qq.com/s/eGrSd2g-88I4jm6KIdecSw Пока…
  3. Jun 9, 2026PHPverse 2026 🎉🐘 Трансляция из офиса JetBrains в Амстердаме в прямом эфире прямо сейчас…
  4. Jun 5, 2026🎙 PHPverse возвращается – 9 июня, 14:00 (11:00 UTC) https://lp.jetbrains.com/phpverse-202…
  5. Apr 23, 2026Команда Swoole работает над компилятором для PHP https://mp.weixin.qq.com/s/05I3xe4pgRJufS…
  6. Apr 1, 2026Дайджест PHP – Февраль-Март 2026 Подборка свежих новостей, инструментов, видео и материало…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →