PHP 7.4: что нового
Ожидается, что PHP 7.4, будет выпущен где-то в декабре 2019 года.
Предварительная загрузка
Предварительная загрузка - замечательное дополнение к ядру PHP, которое может привести к значительному улучшению производительности.
Вкратце: если вы сейчас пользуетесь фреймворком, его файлы должны быть загружены и перекомпилированы при каждом запросе. При запуске сервера и до запуска любого кода приложения мы можем загрузить определённый набор PHP-файлов в память и сделать их содержимое «постоянно доступным» для всех последующих запросов, которые будут обслуживаться этим сервером.
Повышение производительности, конечно, накладывает определенные ограничения: если источник предварительно загруженных файлов изменяется, сервер должен быть перезапущен.
Типизированные свойства
Переменные класса могут иметь тип hinted:
class A { public string $name; public Foo $foo; }
Этот RFC был принят, но еще не утвержден; мы еще не на 100% уверены, что он будет в PHP 7.4.
Улучшена разница типов
Раньше я писал о системе типов PHP, поэтому приятно видеть, что некоторые улучшения на самом деле приходят в ядро PHP.
Разница типов - это тема, достойная отдельного поста в блоге; короче говоря: вы сможете использовать ковариантные типы возврата …
class ParentType {} class ChildType extends ParentType {} class A { public function covariantReturnTypes(): ParentType { /* … */ } } class B extends A { public function covariantReturnTypes(): ChildType { /* … */ } }
и ковариантные аргументы…
class A { public function contraVariantArguments(ChildType $type) { /* … */ } } class B extends A { public function contraVariantArguments(ParentType $type) { /* … */ } }
Оператор объединения со значением NULL
Вместо этого:
$data['date'] = $data['date'] ?? new DateTime();
Вы можете использовать этот вариант
$data['date'] ??= new DateTime();
Этот RFC был принят, но еще не утвержден; мы еще не на 100% уверены, что в конечном итоге это будет в PHP 7.4.
Интерфейс внешней функции
Интерфейс внешней функции,а проще, FFI, позволяет вызывать код C из пользовательского окружения. Это означает, что расширения PHP могут быть написаны на чистом PHP.
Следует отметить, что это сложная тема. Вам все еще нужны знания C, чтобы правильно использовать эту функцию.
ext-hash всегда включен
Как видно из заголовка, это расширение теперь постоянно доступно во всех установках PHP.