Как стать автором
Обновить

Комментарии 14

Предлагается добавить новый магический метод __toArray()

Это предлагалось давным-давно, но были какие-то проблемы. Вот нашел на stackoverflow:
See, we have __toString as it is supported in language constructs like echo, print and other internal functions. But we decided against an autoconversion for arrays already. So itwill never be supported in any language construct. That said there is no needed for this and nothing you would win against the above interface. In fact you would make it php more complex because you'd add just one more magic feature.
Ну я проблемы не увидел, увидел только что человеку легче говнокодить или юзать либы/фреймворки, чем принять и запомнить, что у него есть прекрасный метод который можно задефайнить и всё будет чики-пуки.

Чем не угодил ArrayAccess ? Зачем плодить одно и то же?

Оно скорее аналог JsonSerializable

Надо имплементить интерфейс и 4 метода. И ArrayAccess всё таки немного другое.
Реализация аналога конструкции match из Rust на PHP с помощью стрелочных функций.

It's not as nice as Rust's match keyword, but once you start using PHP for functional programming (yep, that's a thing) I expect it will come in quite handy.

Match работает с паттернами сопоставления, не представляю, как подобное можно реализовать в языке без АТД и паттернов.

Статическая типизация без дженериков это какой-то мазохизм. Ты вроде можешь тайпхинтить, но как только дело касается массивов — здравствуй phpdoc. В итоге тип прописан и в самом методе и в документации к нему. И коллекций нормальных не появится, покуда нет дженериков. Зато для массивов хотят магии добавить — просто рука-лицо.

Проблема в том, что в пхп нет статической типизации. Все проверки идут в рантайме.
А если мы возьмем для проверки типов до запуска тот-же psalm то окажется, что там генерики уже есть.

Ну попробуйте в метод с тайпхинтом int передать что-то другое, получите рантайм исключение. Вот в typescript рантайма нет, а дженерики есть. И я знаю про статические анализаторы типа plasm и phpstan, что-то у них тоже есть дженерики, вас это не сиущает? Смысл тогда в php вообще внедрять тайпхинты, чтобы потом их в двух местах дублировать?

Уже несколько месяцев скрестив пальцы слежу за репозиторием на гитхабе, где обсуждался rfc по дженерикам. Когда увидел сообщение Никиты о том, что он написал пробную версию реализации — перехватило дух :) Но с тех пор — тишина, на его предложение принять участие в обсуждении никто не отреагировал… Становится тревожно за всю эту затею.
Вроде сам Никита писал, что там есть определенные проблемы с внедрением
Спасибо за хорошую подборку :)
php/doc-en — Документацию PHP на английском теперь можно редактировать через пул-реквесты на GitHub вместо старого редактора edit.php.net.

Интересно, как оно будет работать с revision? В других языковых ветках всё на него завязано.

haruncpi/laravel-log-reader — Пакет для красивого отображения логов в админке.
— крайне сырой и коряво работающий пакет без нормальной документации
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории