- PVSM.RU - https://www.pvsm.ru -
Сегодня в официальной документации PHP над каждым примером кода появилась кнопочка Run code, которая позволяет выполнить его и сразу увидеть результат. При этом код в примерах можно редактировать, что позволяет экспериментировать с ним или адаптировать под свою задачу. К примеру, в функцию crc32() [1] можно подставить своё значение и получить контрольную сумму.
Данная функциональность пока работает в тестовом режиме и имеет скорее статус демонстратора возможностей. Наверняка будет выявлено и исправлено множество багов. Но сам факт не может не радовать, такой функционал очень удобен. В планах добавление возможности выполнять код для разных версий PHP.
Фича реализована с помощью технологии WebAssembly (WASM) [2]. То есть, в отличие большинства онлайн-песочниц, которые отправляют код для выполнения на сервер, здесь выполнение происходит прямо в браузере. При запуске примера загружается 4-мегабайтный файл php-web.wasm, который и содержит интерпретатор РНР. Одним из очевидных преимуществ такого подхода является полное отсутствие проблем с безопасностью и производительностью сервера - ведь весь код выполняется в браузере пользователя!
Уже довольно давно этот подход использовался в популярной песочнице 3v4l.org [3] в режиме live preview, так что это был только вопрос времени (и наличия энтузиаста, который предложит пулл-реквест).
Понятное дело, что примеры, которым нужна инфраструктура, работать не будут. Тут всё ещё придётся использовать либо локальный сервер, либо сторонние песочницы, такие как например https://phpize.online/ [4], которую разработал и поддерживает Слава @rozhnev [5], и которая предоставляет уникальную интеграцию со всеми популярными БД.
Кроме того, поддерживается только функционал, включённый в ядро, без модулей. К примеру, не работают примеры для расширения mbstring (впрочем, там почему-то и самих примеров-то почти нет). Но для большинства стандартных функций примеры работают. Например, для недавно добавленной array_find [6].
Надо сказать, что многие примеры не адаптированы к живому исполнению и попросту выдают ошибку, поскольку не содержат необходимый контекст. Особенно забавно при этом выглядит страница с примерами использования перечислений [7], на которой первые два примера вообще ничего не выводят, а третий выдаёт ошибку, поскольку требует код из предыдущего примера.
Но такие проблемы как раз легко исправимы, благодаря ещё одному недавнему улучшению: внизу каждой страницы есть ссылка Submit a Pull Request, которая ведёт на исходник страницы в официальном репозитории документации на Github. Так что предложить исправление не сложнее, чем пофиксить ошибку в своем коде.
Автор: FanatPHP
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/404304
Ссылки в тексте:
[1] crc32(): https://www.php.net/manual/ru/function.crc32.php#example-4924
[2] WebAssembly (WASM): https://habr.com/ru/articles/475778/
[3] 3v4l.org: https://3v4l.org/
[4] https://phpize.online/: https://phpize.online/
[5] @rozhnev: https://www.pvsm.ru/users/rozhnev
[6] array_find: https://www.php.net/manual/en/function.array-find.php#example-5087
[7] страница с примерами использования перечислений: https://www.php.net/manual/en/language.enumerations.examples.php
[8] Источник: https://habr.com/ru/articles/863564/?utm_source=habrahabr&utm_medium=rss&utm_campaign=863564
Нажмите здесь для печати.