Что нового в PHP 7.1 ?
https://wiki.php.net/rfc/nullable_types
Самое необходимое. Как только мы в комании начали использовать PHP 7.x, return type declaration
стал строгим правилом. На примере какого-нибудь геттера модели можно встретиться
что если свойство равно NULL то и return type declaration
строгое правило сработает и вызовет ошибку.
function getRelatedModel(): \Domain\Entity
{
return new \Domain\Entity; // OK
}
function getRelatedModel(): \Domain\Entity
{
return null; // NOT OK
}
function getRelatedModel(): ?\Domain\Entity
{
return null; // OK
}
В параметрах функций
function foo(?\Domain\Entity $entity) {}
foo(new \Domain\Entity); // valid
foo(null); // valid
foo(); // INVALID !
https://wiki.php.net/rfc/void_return_type
Здесь опять, если хотим использовать плюшки из static type checking ? Надо продолжать движение в этом направлении. Если знаем что функция ничего не должна возвращать — описываем это явно.
function i_do_not_return_anything() : void {
// some action
return;
}
https://wiki.php.net/rfc/list_keys
https://wiki.php.net/rfc/multiple-catch
Кто активно использует исключения, уже встречался что обработчики могут быть очень похожи. А то и идентичны. Что приводит к дублированию кода. Теперь можно будет использовать следующий синтаксис:
// Раньше
try {
// something
} catch (\LogicException $e) {
// LogicException handler
} catch (\DomainException $e) {
// DomainExceptionHandler
}
// PHP 7.1
try {
// something
} catch (\LogicException || \DomainException $e) {
// common
}
PHP развивается и развивается очень быстро что не может не радовать.