Open mglaman opened 3 weeks ago
Possible workaround:
import { PhpBase } from 'php-wasm/PhpBase.mjs';
import PhpBinary from 'php-wasm/php-node.mjs';
const php = new PhpBase(PhpBinary, {
persist: {
mountPath: '/persist',
localPath: process.cwd() + '/tests/fixtures/'
},
sharedLibs: [
await import('php-wasm-zlib'),
await import('php-wasm-libzip')
``
I don't think this is quite working either as when I debug I find it trying to load php83-zlib.so.so
WIP branch where I'm trying this out: https://github.com/mglaman/wasm-drupal/blob/9768d93d0b4bca056a87d40dfc5a06264b2c5190/tests/init-phpcode.test.js
Warning: PHP Startup: Invalid library (maybe not a PHP library) 'libzip.so' in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'php8.3-zlib.so' (tried: ./php8.3-zlib.so (Tried to lookup unknown symbol "_zend_extension_entry" in dynamic lib: libzip.so), ./php8.3-zlib.so.so ()) in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'zlib.so' (tried: ./zlib.so (), ./zlib.so.so ()) in Unknown on line 0
Okay, I got it working this way: using PhpBase and not PhpNode
import { PhpBase } from 'php-wasm/PhpBase.mjs';
import PhpBinary from 'php-wasm/php-node.mjs';
const php = new PhpBase(PhpBinary, {
persist: {
mountPath: '/persist',
localPath: process.cwd() + '/tests/fixtures/'
},
sharedLibs: [
{
name: `php${PhpNode.phpVersion}-zip.so`,
url: `${process.cwd()}/node_modules/php-wasm-libzip/php${PhpNode.phpVersion}-zip.so`,
ini: true
},
{
name: `libzip.so`,
url: `${process.cwd()}/node_modules/php-wasm-libzip/libzip.so`,
ini: false
},
{
name: `php${PhpNode.phpVersion}-zlib.so`,
url: `${process.cwd()}/node_modules/php-wasm-zlib/php${PhpNode.phpVersion}-zlib.so`,
ini: true
},
{
name: `libz.so`,
url: `${process.cwd()}/node_modules/php-wasm-zlib/libz.so`,
ini: false
},
]
});
I'm trying out PhpNode and the following:
All is good until the following: See following screenshot
The
path
isphp8.3-zlib.so
, buturlLibs[path]
has the proper URL. Butlocated
returns a value even though it is wrong.locateFile
never returns undefined when using PhpNode and returns files which do not exist. See result in the next screenshot.