Представлен бета-выпуск новой ветки языка программирования PHP 8

27.08.2020     

Опубликован тестовый выпуск PHP 8.0.0, Beta 2. Официальный релиз стабильной версии PHP 8 запланирован на 26 ноября. В нее будет внесен ряд критических изменений, функций и улучшений производительности.

PHP 8 предлагает набор новых функций, таких как JIT-компилятор, типы объединения, атрибуты и многое другое.

Новые возможности

JIT

PHP – это интерпретируемый язык: он не компилируется как программа на C, Java или Rust. Вместо этого он транслируется в машинный код во время выполнения. JIT – это метод, который компилирует части кода так, что вместо них можно использовать скомпилированную версию. Этот процесс можно описать как «кэшированную версию» интерпретируемого кода.

«Монитор» JIT будет анализировать код во время его выполнения. Если части кода выполняются повторно, он помечает их как «теплые» или «горячие», в зависимости от частоты. «Горячие» части можно скомпилировать как оптимизированный машинный код и использовать вместо оригинального. Это должно значительно увеличить производительность PHP при работе с повторяющимися кусками кода.

Демонстрация JIT с генерацией фракталов: https://youtu.be/dWH65pmnsrI

Атрибуты

Атрибуты в PHP – аналог аннотаций или декораторов в других языках. Они предлагают способ указывать полную информации о типе без необходимости синтаксического анализа. Атрибуты могут применяться к:

  • функциям (включая закрытие и короткое закрытие)
  • классам (включая анонимные классы), интерфейсы, черты характера
  • константам класса
  • свойствам класса
  • методам класса
  • параметрам функции / метода

Продолжаются споры по поводу принятого на текущий момент синтаксиса <<Attr>> – он считается слишком многосимвольным и сложночитаемым при использовании вложенных аннотаций. В качестве альтернативы предлагаются варианты: @@Attr, #[Attr], @[Attr], @:Attr или @{Attr}. Окончательный вариант пока не определен – на странице, посвященной синтаксису, проходит голосование, итоги которого будут подведены 2 сентября.

Выражение соответствия

PHP 8 представляет новое выражение match – эту функцию стоит использовать в качестве альтернативы switch. 

Синтаксис выражения match значительно короче, не требует заявления break, позволяет комбинировать условия, использует строгие сравнения типов и не выполняет приведения типов.

Продвижение свойств 

Когда параметр метода использован с одним из ключевых слов видимости public, protected или private, он считается «продвигаемым». Для каждого продвигаемого параметра будет добавлено свойство с тем же именем и переадресация этого свойства, включенного в тело конструктора, в соответствии с подробными правилами.

Отмена проверки наследования частных методов

Ранее в PHP применялись одинаковые проверки наследования к общедоступным, защищенным и частным методам. Частные методы должны были следовать тем же правилам подписи, что и защищенные и общедоступные методы. Это бессмысленно, поскольку закрытые методы не доступны дочерним классам.

Теперь проверка наследования не будет выполняться для частных методов. 

WeakMap

С помощью WeakMap можно организовывать карты «слабых ссылок» (ссылок на объекты, которые не предотвращают сборку мусора для этих объектов). Таким образом реализуется ресурсосберегающее кэширование объектов, не приводящее к утечкам памяти.

Завершающая запятая в списках параметров

В PHP 8 теперь поддерживается завершающая запятая при указании списка параметров в вызовах функций и конструкторах методов. Также завершающие запятые поддерживаются и в списке замыканий use.

ext-json доступен всегда 

PHP больше нельзя скомпилировать без включенного расширения JSON. Разработчикам теперь не требуется делать проверку, что расширение существует –  они смогут рассчитывать на присутствие JSON всегда.

Критические изменения

Ошибки согласованного типа

Пользовательские функции в PHP будут вызывать TypeError, а внутренние – нет, они теперь выдают предупреждения и возвращают null. 

Режим ошибки PDO по умолчанию

Ранее при возникновении ошибки SQL не выдавал предупреждения и не создавал исключения, если разработчик не реализует свою собственную явную обработку ошибок. Теперь режим PDO исправлен.

Разумный результат при сравнении чисел и строк

Исправление ситуации в PHP, когда 0 == "foo" давало результат true. 

Ожидания

Существует вероятность, что программистам потребуется внести некоторые изменения в свой код, чтобы он работал на PHP 8. Однако, обновление не должно вызвать сложностей, так как большинство изменений были уже реализованы в предыдущих версиях. 

Согласно плану выпуска следующую версию Beta 3 стоит ожидать 3 сентября. Это будет последняя бета перед основной стабильной версией PHP 8.0 в ноябре 2020 года. Следует отметить, что бета-версия не подходит для использования в продакшене и предназначена только для ознакомления.

Напомним также, что в июле представитель Microsoft заявил, что компания не собирается выпускать официальные сборки для PHP 8 и более поздних версий.


Полный список новых функций PHP 8

Полный список критических исправлений


Автор:
Сергей Кравченко Обозреватель


Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. sikuda 649 28.08.20 09:17 Сейчас в теме
Ну когда же мы узреем JIT-компиляцию в 1С?
SKravchenko; +1 Ответить
Оставьте свое сообщение

См. также

Российские компании создадут космический дата-центр на орбите

Новость Дата-центры ИТ-новость Новости компаний

Компании RuVDS и Orbital Express договорились принять участие в совместном проекте по запуску орбитального центра обработки данных. Сервер в открытый космос будет доставлен на отечественной ракете «Союз».

сегодня в 13:47    873    VKuser24342747    0       

Бизнес отделяет ИТ-структуры ради налоговых льгот

Новость ИТ-новость Налоги Новости компаний

С 1 января 2021 года в РФ вступил в силу налоговый маневр, который обеспечивает льготы для ИТ-отрасли. Чтобы воспользоваться ими, крупные корпорации стали переформатировать свои ИТ-подразделения в отдельные компании.

сегодня в 11:37    702    user1015646    0       

Михаил Мишустин предложил создать стартап-школы при российских вузах

Новость ИТ-новость Стартапы Цифровая экономика

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

вчера в 17:08    1449    VKuser24342747    4       

В сервис для управления проектами Asana добавили русский язык

Новость ИТ-новость Управление проектами

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

вчера в 12:12    1875    user1015646    0       

У Google Docs появился российский конкурент

Новость Интернет ИТ-новость

Разработчики офисного пакета «Мой офис» представили бесплатные версии текстового редактора и электронных таблиц. Пользоваться ими можно прямо в браузере.

16.04.2021    1576    user1015646    3       

Microsoft планирует вносить свой вклад в экосистему Java

Новость ИТ-новость

Американская компания представила тестовый бесплатный дистрибутив OpenJDK с открытым исходным кодом. В скором времени ИТ-гигант обещает представить релизную версию продукта.

16.04.2021    942    VKuser24342747    0       

Google Database Migration Service стал доступен для всех

Новость MySQL PostgreSQL Google Интеграция Интернет ИТ-новость

Компания Google открыла всем пользователям бесплатный доступ к сервису Database Migration Service. Это позволит компаниям провести миграцию своих баз из MySQL. PostgreSQL и других платформ в облако Cloud SQL без выделения дополнительных ресурсов.

15.04.2021    3708    user1015646    0       

Российские разработчики представили бесплатный онлайн-редактор кода

Новость Mail.Ru ИТ-новость

Компания Mail.Ru запустила онлайн-сервис для совместной работы с кодом на базе платформы All Cups. Он поддерживает Python, C++, Java и еще шесть популярных языков программирования.

14.04.2021    1754    user1015646    5       

Rust станет одним из основных языков разработки Android

Новость Android ИТ-новость Мобильные приложения Языки программирования

С целью уменьшения количества ошибок, связанных с безопасностью памяти, Google объявил, что Android будет поддерживать Rust в низкоуровневом системном коде ОС. Об этом 6 апреля сообщили члены команды разработчиков Android в блоге Google Security.

14.04.2021    1457    SKravchenko    3       

Минпромторг готов выделять по 500 млн рублей в год на разработку ИИ

Новость Искусственный интеллект ИТ-новость Минпромторг Цифровая экономика

Минпромторг подготовил проект постановления для поддержки разработчиков решений на базе ИИ. Компании смогут получить до 3 млрд рублей на пять лет, по 500 млн каждый год.

13.04.2021    958    VKuser24342747    2       

ARM представила новую процессорную архитектуру v9

Новость ИТ-новость Микроэлектроника

Компания ARM разработала инновационную процессорную архитектуру v9. Она обладает масштабным потенциалом и будет использоваться для систем искусственного интеллекта и безопасности, мобильных устройств и специализированных вычислений.

12.04.2021    1077    user1015646    0       

Microsoft разделит ключевые компоненты Windows

Новость Windows ИТ-новость

Модули Windows 10 становятся всё более независимыми. Меню «Пуск» стало отдельным компонентом около двух лет назад. Теперь пришёл черёд отделить панель задач – это должно исправить проблему с зависаниями системы.

09.04.2021    3962    user1015646    0       

Правительство начнет регулировать цифровые экосистемы

Новость Импортозамещение ИТ-новость Новости компаний Цифровая экономика

Правительство готовит концепцию регулирования для быстро развивающихся цифровых экосистем, таких как Сбер, Яндекс, Тинькофф и других. Цель – повысить конкурентоспособность экосистем за рубежом.

08.04.2021    7463    mouse187    1       

Ремонтировать технику Apple в России станет проще

Новость iOS ИТ-новость Новости компаний

Компания Apple расширила программу независимого ремонта своей техники. В список стран, где она теперь доступна, попала и Россия.

08.04.2021    9016    user1015646    0       

Треть пользователей готова избавиться от предустановленного отечественного ПО

Новость Импортозамещение ИТ-новость Мобильные приложения

Компания ESET провела опрос, в котором 29% респондентов заявили о своем желании удалить предустановленные российские приложения со смартфонов, ноутбуков и телевизоров.

07.04.2021    2335    VKuser24342747    2       

Google начала тестировать FLoC – технологию-убийцу cookies в Chrome

Новость Google Безопасность Интернет ИТ-новость

Google продолжает разрабатывать альтернативу cookie-файлам. Поисковый гигант уже приступил к тестированию технологии, позволяющей хранить данные о пользователе браузера в обезличенном виде.

06.04.2021    5706    VKuser24342747    0       

В России пройдет закрытое тестирование электронной почты с кириллицей в адресах

Новость Импортозамещение Интернет ИТ-новость

Проект поддержки доменных имен на национальных языках и регистратор доменных имен начали проект по тестированию работы электронной почты с кириллице в адресах.

02.04.2021    2321    Senator_I    1       

Crystal – простой, как Ruby, и «быстрый», как C

Новость ИТ-новость Языки программирования

Вышел первый стабильный релиз языка Crystal. Синтаксис Crystal схож с Ruby, что делает язык легким для чтения и записи и снижает кривую обучения для опытных разработчиков.

02.04.2021    2913    SKravchenko    1       

Платежная система Visa разрешит платежи в криптовалюте

Новость Безопасность Блокчейн ИТ-новость Онлайн-торговля

Крупнейшие поставщики платежных услуг для банковских карт выходят на криптовалютный рынок. Visa вслед за Mastercard сообщила, что начнет поддерживать транзакции в цифровых токенах.

02.04.2021    2254    VKuser24342747    1       

Samsung стала предустанавливать на смартфоны неудаляемые приложения. Яндекс против

Новость Импортозамещение ИТ-новость Мобильные приложения Новости компаний Яндекс

С 1 апреля в России вступает в силу закон об обязательной предустановке отечественных приложений. Samsung стала инсталлировать ПО Яндекса на свои устройства без возможности удаления. Российский ИТ-гигант призвал производителя не делать этого.

01.04.2021    2580    user1015646    0       

Линус Торвальдс рассказал о том, где Rust впишется в Linux

Новость Linux ИТ-новость Языки программирования

Медленно, но верно язык Rust проникает в Linux. Линус Торвальдс и Грег Кроа-Хартман поделились своим мнением насчет перспектив Rust в Linux.

31.03.2021    2563    SKravchenko    0       

В России создали невидимые этикетки

Новость ИТ-новость

Специалисты из Университета ИТМО и Санкт-Петербургского академического университета представили новую технологию создания этикеток. Она призвана защитить рынок от распространения контрафакта.

30.03.2021    1433    user1015646    8       

Google и Microsoft начали совместную работу над совместимостью браузеров

Новость Google Интернет ИТ-новость Новости компаний

Компании Google, Microsoft и Igalia объявили о запуске совместного проекта Compat2021. С его помощью будет улучшена совместимость браузеров Chrome, Edge, Firefox и Safari.

30.03.2021    1570    VKuser24342747    0       

Представлен Windows Community Toolkit v7.0: что нового

Новость ИТ-новость Новости компаний Языки программирования

Компания Microsoft выпустила новую версию Windows Community Toolkit v7.0. Это коллекция расширений, инструментов помощи и настраиваемых кнопок для разработки UWP- и .NET-приложения для Windows 10.

29.03.2021    7953    user1015646    1       

Google Chrome начнет автоматически добавлять https:// ко всем веб-адресам

Новость Google Безопасность Интернет ИТ-новость

В новой версии браузера Google Chrome будет отключен редирект с http:// на https://. Веб-обозреватель будет сразу загружать сайт через защищенный протокол, уже ставший стандартом.

29.03.2021    3317    VKuser24342747    0