TGViewer
Пятиминутка PHP Пятиминутка PHP @tg_5minphp · 2.8K subscribers
Post #1502 2.2K
🔥 4 RFC в истории PHP, которые провалились буквально из-за пары голосов

В языке PHP многие фичи, которые сегодня кажутся очевидными, сначала не проходили голосование RFC. Иногда не хватало буквально нескольких голосов.

Вот несколько показательных примеров.

---

1️⃣ Typed Properties (2016)

Сегодня это нормальная часть языка:


class User {
public int $id;
}


Но первая версия RFC провалилась.

Результат голосования:


Yes: 24
No: 17


На первый взгляд — победа.
Но для этого RFC требовалось 2/3 голосов.

Через несколько лет предложение переработали — и Typed Properties появились в PHP 7.4.
Сегодня это одна из самых используемых возможностей языка.

---

2️⃣ Scalar Type Hints

До PHP 7 нельзя было писать:


function sum(int $a, int $b)


Можно было типизировать только:

* array
* callable
* классы

Первая версия RFC по scalar types провалилась буквально на грани.

Типичный результат одного из голосований:


Yes: 31
No: 25


До порога 2/3 голосов опять немного не дотянули.

В итоге появился компромисс:


declare(strict_types=1);


И scalar types всё-таки попали в PHP 7.0.

---

3️⃣ Generics

Одна из самых ожидаемых фич PHP до сих пор.

Идея:


class Collection<T> {
public function add(T $item) {}
}


Generics дают:

• сильную типизацию
• безопасные коллекции
• лучшее автодополнение IDE

Главная проблема — сложность реализации.
Generics требуют серьёзных изменений:

• type system
• runtime
• reflection
• opcache

Поэтому обсуждение этой фичи продолжается уже много лет.

---

4️⃣ Named Arguments

Сегодня можно писать так:


setcookie(
name: "test",
expires: time() + 3600
);


Но первая версия RFC была отклонена.

Разработчики опасались:

• ломать старые API
• сложности в call stack
• несовместимости с variadic функциями

После переработки RFC всё-таки приняли, и Named Arguments появились в PHP 8.0.

---

💡 Интересный факт

В internals есть шутка:

> RFC не умирает — он просто уходит на переписывание.

Большинство крупных фич PHP проходят примерно такой путь:

1️⃣ первая версия RFC проваливается
2️⃣ идею перерабатывают
3️⃣ через несколько лет она всё-таки попадает в язык
  • 🔥 30
  • 👍 11
  • ❤ 3
  • 😁 2
More from @tg_5minphp
  1. Sep 10, 2026Пыхник’26 — целая неделя PHP! С 28 сентября по 2 октября пройдёт Пыхник’26 — онлайн-конфер…
  2. Jul 27, 2026Работа с Claude Code "в лоб": создай dynamic worflow, чтобы найти все баги, запиши их в BU…
  3. Jul 8, 2026Первый официальный State of PHP опрос открыт: https://jb.gg/php-survey-2026 В сообществе у…
  4. Jul 3, 2026Запустили краудфандинг!!! 11 сентября в Art Village под Москвой собираем небольшую PHP-кон…
  5. Jul 3, 2026Продано!
  6. Jun 20, 2026Помните я писал про затею от разработчиков модели Kimi - ставишь на какую-то футбольную ко…
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 →