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

27.08.2020      20638

Опубликован тестовый выпуск 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 673 28.08.20 09:17 Сейчас в теме
Ну когда же мы узреем JIT-компиляцию в 1С?
SKravchenko; +1 Ответить
Оставьте свое сообщение

См. также

«Сколково» объявил отбор перспективных ИИ-проектов для получения грантов

Новость Искусственный интеллект ИТ-Новость

В 2024 году «Сколково» выделит пилотным проектам в сфере искусственного интеллекта гранты на общую сумму 554 млн рублей. В результате отбора финансирование получат проекты с применением ИИ в областях производства, операционной деятельности и в работе предоставляемых сервисов.

12.04.2024    494    AnastasiaKl    3       

3

В программу подготовки спортивных программистов вошли бег и скорость печати

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

Пятничное: в России вступил в силу стандарт подготовки по дисциплине «спортивное программирование». В стандарт вошли требования к физическим показателям спортсменов и скорости набора текста.

16.02.2024    699    VKuser24342747    2       

1

Росстандарт утвердил протокол LoRaWAN для интернета вещей

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

Федеральное агентство по техническому регулированию и метрологии (Росстандарт) утвердило национальный стандарт протокола LoRaWAN RU, таким образом он получил официальный статус. Технология используется для беспроводной передачи данных между устройствами интернета вещей.

19.01.2024    489    VKuser24342747    0       

2

Новый закон откладывает на год вступление в силу изменений в порядок регистрации на сайтах

Новость Законодательство ИТ-Новость

12 декабря вступил в силу Федеральный закон, меняющий срок, к которому все владельцы сайтов должны внести изменения в порядок авторизации пользователей на сайте. Закон вводит переходный период до 1 января 2025 года.

20.12.2023    661    VKuser24342747    2       

1

Вышло крупное обновление для Android Studio

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

Новая версия Android Studio под номером 2023.1 получила имя Hedgehog. Появились возможности контролировать производительность приложений и управлять подключенными устройствами.

07.12.2023    810    VKuser24342747    2       

3

GitHub опубликовал результаты ежегодного исследования проектов с открытым исходным кодом

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

GitHub собрал данные об Open Source проектах в рамках ежегодного исследования Octoverse. Компания изучила географию репозиториев, используемые языки программирования и нейросети, а также активность сообщества.

15.11.2023    531    VKuser24342747    1       

2

Некоммерческие проекты смогут получить бесплатный доступ к GigaChat API

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

Компания «Сбер» заявила, что будет бесплатно предоставлять доступ к API нейросети для генерации текста GigaChat для некоммерческих проектов. Однако для них будет ограничено число доступных токенов.

01.11.2023    662    VKuser24342747    2       

3

Состоялся релиз свободной среды разработки Geany 2.0

Новость ИТ-Новость Программист

Вышла новая версия Geany 2.0. Обновление затронуло внешний вид программы, расширило поддержку файлов и сторонних проектов, добавило новые способы работы с кодом.

25.10.2023    713    VKuser24342747    0       

1

Минцифры подготовило критерии по выбору оператора реестра провайдеров хостинга

Новость Минцифры ИТ-Новость Роскомнадзор

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

25.10.2023    385    VKuser24342747    0       

1

Минцифры составило алгоритм действий для компаний, у которых не работает VPN

Новость Минцифры ИТ-Новость

Минцифры подготовило разъяснения для российских организаций, у которых возникли перебои в работе VPN-сервисов для клиентов и сотрудников из-за блокировки запрещенных ресурсов Роскомнадзором.

24.10.2023    640    VKuser24342747    0       

0

«Сбер» объявила о доступности SberLinux OS Server для российских компаний

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

«СберТех», дочерняя компания «Сбера», объявила о предоставлении доступа к собственной серверной операционной системе SberLinux OS Server российским компаниям. ОС включена в реестр отечественного ПО.

20.10.2023    899    VKuser24342747    0       

2

Минцифры внесло изменения в проект правил идентификации клиентов веб-хостингов

Новость Минцифры ИТ-Новость Роскомнадзор

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

18.10.2023    473    VKuser24342747    0       

1

Google выпустила финальную версию Android 14

Новость Android Google ИТ-Новость

Google выпустила новую версию мобильной ОС Android 14. Изменения затронули настройки внешнего вида и безопасности. Были расширены возможности камеры и инструментов для хранения данных.

12.10.2023    700    VKuser24342747    0       

1

Яндекс объявил об открытии исходного кода DataLens

Новость Аналитика ИТ-Новость Яндекс

BI-система Yandex DataLens теперь развивается в опенсорс. Код продукта выложен для всех на GitHub. Любой желающий сможет развернуть DataLens на своем железе и доработать его под свои сценарии применения.

03.10.2023    1431    ЕленаЧерепнева    1       

6

Роскомнадзор создаст реестр хостинг-провайдеров

Новость Минцифры ИТ-Новость Роскомнадзор

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

02.10.2023    609    VKuser24342747    0       

1

«СберТех» представил репозиторий GitVerse с ИИ-помощником для написания кода

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

«СберТех» начал прием заявок на тестирование веб-сервиса для публикации ИТ-проектов GitVerse. Платформа подходит для разработки программ с открытым и закрытым кодом.

26.09.2023    834    VKuser24342747    2       

1

ИП и юрлица смогут использовать смартфон для создания и замены электронной подписи

Новость ИТ-Новость ФНС Цифровая подпись

ФНС внесла изменения в правила оформления электронной подписи руководителя организации и ИП. Станет возможным продлевать ее и записывать при помощи мобильного устройства.

18.09.2023    439    VKuser24342747    1       

1

Журнал IEEE Spectrum опубликовал рейтинг популярности языков программирования

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

Журнал Института инженеров электротехники и электроники IEEE Spectrum подготовил рейтинг самых популярных языков программирования в 2023 году. Статистика разделена на три категории.

01.09.2023    1316    VKuser24342747    4       

2

В бета-версии Microsoft 365 появилась поддержка языка Python для Excel

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

С помощью библиотек и средств визуализации Python можно будет манипулировать данными Excel, а затем использовать полученные результаты в формулах, диаграммах и сводных таблицах.

28.08.2023    668    VKuser24342747    0       

2

Специалисты Калифорнийского университета установили, что боты справляются с CAPTCHA лучше, чем люди

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

Международная группа исследователей изучила эффективность тестов CAPTCHA. Ученые пришли к выводу, что технология больше мешает людям, потому что боты научились с ней справляться.

24.08.2023    1171    VKuser24342747    23       

2

Google Chrome начнет поддерживать квантово-устойчивые алгоритмы шифрования

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

В версии Google Chrome 116 появится поддержка алгоритмов шифрования, устойчивых к попыткам дешифрации при помощи квантовых вычислений. Технология объединяет преимущества классической и инновационной криптографии.

24.08.2023    486    VKuser24342747    0       

1

В реестр российского ПО включен первый комплекс обработки больших данных

Новость Импортозамещение Минцифры ИТ-Новость Реестр ПО

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

22.08.2023    476    VKuser24342747    0       

1

Microsoft внедрила новые функции в GitHub Copilot и анонсировала Windows Copilot

Новость GitHub Искусственный интеллект

ИИ-помощник для разработчиков GitHub Copilot теперь не только в реальном времени анализирует код, предлагает варианты для его улучшения и помогает найти решение проблем в разработке, но и  показывает ссылки на репозитории, из которых взят код. 

17.08.2023    1172    VKuser24342747    0       

1

В JetBrains разработали ИИ-помощника для аналитиков данных

Новость Аналитика Искусственный интеллект

JetBrains представила нейросеть Ask AI для онлайн-блокнота Datalore. Виртуальный ассистент способен генерировать код на нескольких языках, предлагать доработки и упрощать процесс аналитики данных. 

16.08.2023    675    VKuser24342747    0       

1

Исследование: ChatGPT дает неправильный ответ на половину вопросов о программировании

Новость Искусственный интеллект ИТ-Новость

Чат-бот OpenAI ошибается в 52% случаев, когда отвечает на вопросы по программированию. Однако делает это так убедительно, что пользователи не замечают ошибки. 

14.08.2023    1054    VKuser24342747    5       

3