Надо отметить, что плане null получилось лучше, чем в Java. В Java всегда можно передавать null вместо любого объекта и я уже видел тонну boilerplate assertion'ов а-ля if (foo == null) throw InvalidArgumentException(). В PHP же такой assertion уже на уровне языка и это приятно.
@Вурдалак, Вероятно ты прав. Я тут погуглил. Эти проверки похоже включаются опционально при компиляции(хотя в эклипсах и жетбрэйнсах оно включено по умолчанию).
Отстает ява от жизни...
"Все nullable" в джаве я вообще считаю крупнейшей архитектурной ошибкой. Думаю, даже те, кто ни разу не писал на джаве, но пользовался Java-программами, знают, что такое NPE
Ой, да с ними спорить. Вот был один такой, написал интерфейс и абстрактный класс на простейший ValueObject и с пеной у рта доказывал, что это АРХИТЕКТУРА. И потом критиковал мой код за отсутствие проверок на null (хотя там этих null оказаться не могло вообще никак, php не джава же).
Мне кажется, некоторые люди получают удовольствие от написания бойлерплейт-кода.
Ой не напоминай. Был на одном проекте где на КАЖДУЮ бизнес-сущность и ValueObject(обычные классы) делали интерфейс(C#). Когда спросил зачем - сказал что так советуют крутые практики. Такой был копипаст... сущности некоторые по 50 полей.