журнал изменений
Установить с помощью npm:
$ npm install php-wasm
Вам нужно будет добавить следующую запись сценария postinstall
в файл package.json, чтобы обеспечить доступность статических ресурсов для вашего веб-приложения. При необходимости обязательно замените public/
путем к корневому каталогу общедоступного документа.
{
"scripts" : {
"postinstall" : [
" cp node_modules/php-wasm/php-web.* public/ "
]
},
}
Если вы используете более продвинутый сборщик, воспользуйтесь документацией поставщика, чтобы узнать, как переместить файлы, соответствующие следующему шаблону, в ваш общий каталог:
./node_modules/php-wasm/php-web.*
Использовать php-wasm легко.
Как только библиотека будет включена на страницу, вы сможете запускать PHP прямо из тега скрипта! Атрибут src также поддерживается для невстроенных скриптов.
< script type = " text/php " >
< ? php vrzno_run ( 'alert' , [ 'Hello, world!' ] ) ;
</ script >
Сначала возьмите экземпляр объекта:
const PHP = require ( 'php-wasm/PhpWeb' ) . PhpWeb ;
const php = new PHP ;
или в es6:
import { PhpWeb as PHP } from 'php-wasm/PhpWeb' ;
const php = new PHP ;
Затем добавьте прослушиватель вывода:
php . addEventListener ( 'output' , ( event ) => {
console . log ( event . detail ) ;
} ) ;
Обязательно подождите, пока ваш WASM полностью загрузится, а затем запустите PHP:
php . addEventListener ( 'ready' , ( ) => {
php . run ( '<?php echo "Hello, world!";' ) ;
} ) ;
Получите код результата вашего скрипта с помощью then()
:
php . addEventListener ( 'ready' , ( ) => {
php . run ( '<?php echo "Hello, world!";' ) . then ( retVal => {
// retVal contains the return code.
} ) ;
} ) ;
Пока php.refresh()
не вызывается из Javascript, экземпляр будет поддерживать свою собственную постоянную память.
<?php
/ / Run this over and over again ...
print ++ $ x ;
Посмотреть пример в действии здесь
Доступ к DOM можно получить через расширение PHP VRZNO. Это специально для браузера, позволяющего PHP получать доступ к Javascript через API C. Он поставляется с предустановленным php-wasm.
Посмотреть пример в действии здесь
/ / Show an alert with vrzno_run . Note the second param is an array of args .
vrzno_run ( ' alert ' , [ ' Hello, World! ' ]);
$ oldTitle = NULL ;
$ newTitle = ' Changed@ ' . date ( ' h:i:s ' );
/ / Grab the current title.
$ oldTitle = vrzno_eval ( ' document.title ' );
/ / Change the document title.
vrzno_eval ( ' document.title = " ' . $ newTitle . ' " ' );
Запустить ПИБ
Firefox рекомендуется для лучшего взаимодействия с пользователем.
Самый быстрый способ собрать PIB — использовать Make & Docker. Просто введите команду make
после проверки репозитория, и он будет собран.
make
Шаги:
bash configure.sh
bash build-objects.sh
bash build.sh
чтобы собрать веб-бинарный файл.