Pull to refresh

Comments 15

> Также предлагается сделать возможным указание типа, который может быть пустым null
Сейчас такое можно сделать, если указать для аргумента значение по умолчанию null. Но иногда действительно не хватает возможности просто передать null в обязательный аргумент.

Но больше всего жду возможности вернуть null из метода с явно указанным типом возвращаемого значения. Это единственное, что останавливает меня от применения этой фичи. А очень хочется :)

Вообще здорово, что PHP движется в эту сторону. А главное, что все указания типов опциональны. Если надо быстро на коленке скрипт накидать, то не придется с этим заморачиваться. А в крупных проектах указание типов будет очень кстати.
Но иногда действительно не хватает возможности просто передать null в обязательный аргумент.

А как же billion-dollar mistake? Сейчас все языки пытаются избавиться от такой возможности, т.к. это ведет к огромному количеству NPE, а вы хотите это впихнуть в PHP :(

Имхо, лучше делать ограничения и доп. проверки при использовании nullable-типов, например, как это сделано в Kotlin'е.
Вот когда введут option типы, тогда и можно будет от null избавляться.
Для вас уже сделали hack :)
Ну так то отдельная тема.
Просто есть нововведения, которые надо вводить последовательно. Если мы хотим избавиться от null, то сначала нужно предоставить альтернативу ему. Если мы вводом явное указание типов, но надо не просто ввести для галочки, а позаботиться о том, чтобы оно хорошо уживалось с другими фичами языка.

Например в PHP очень не хватает (лично мне) возможности указывать трейты в качестве типов. Т.е. я указываю, что функция принимает в качестве аргумента любой класс, который реализует такой-то трейт. В скале такое, например, есть. И это очень удобно. Ведь трейты — удобная штука. Дает возможность легко использовать расширение вместо наследования. Но с полиморфизмом беда выходит из-за невозможности указания его в качестве типа.

Ну, пока только так:

To specify a type declaration, the type name should be added before the parameter name. The declaration can be made to accept NULL values if the default value of the parameter is set to NULL.

Ну в хаке "?" удобнее, конечно.
Я думаю в ближайших версиях к этому все равно придут.
Есть такое RFC.
Да. Это хорошее решение будет, если примут.

Очень жду Nullable Types. Не везде null-object подходит.

Отличная подборка, спасибо!
Заинтересовала вот эта библиотека teamtnt/tntsearch.
Как вы собираете такой дайджест?
Интересно бы посмотреть на бенчмарк этой библиотеки. Если будете пробовать её, то дайте знать обществу:
Как быстро ищет в базе с миллионами записей?
Сколько памяти ест?
На сколько нагружает проц?
На сколько легко добавляются/удаляются записи из индекса?
И т.д.
Интересен комментарий автора ReactPHP на тему PHP-PM:
PHP-PM, manages ReactPHP processes (see Bring High Performance Into Your PHP App)
benchmarks showed it wasn't much faster than vanilla Symfony, which might be due to configuration issues

Кто-нибудь реально юзал кого-нибудь из этих зверей?
если не ошибаюсь, fesor. по крайней мере, он часто его упоминает :) лично у меня его так и не получилось нормально завести для Laravel
Использую в «продакшене» на личном проектике (правда там не symfony а только отдельные его компоненты). На коммерческих проектах пока не доводилось, только reactphp сам по себе использую.

По сути в моем случае из stateful сервисов пришлось только с доктриной повозиться (просто отчищать unit of work после каждого запроса, что не сложно). А вот целую laravel так запускать наверное сходу не выйдет, уж слишком много там stateful штук может быть.

По поводу использования в продакшен: https://twitter.com/MarcJSchmidt/status/723480541572554753
Sign up to leave a comment.