-
-
Notifications
You must be signed in to change notification settings - Fork 8
Description
What were you trying to do?
I was trying to run a fresh NativePHP application on macOS
What happened?
Error in PHP:
Call to undefined function Illuminate\Support\mb_split() (0) in ~/Projects/mixlab/vendor/laravel/framework/src/Illuminate/Support/Str.php:1685
The issue is that NativePHP's bundled PHP binary (from nativephp/php-bin) is missing the mbstring extension, which is required by Laravel's Str class.
How to reproduce the bug
- Install Laravel
laravel new app - composer require nativephp/desktop
- php artisan native:install
- php artisan native:run
Debug Output
{
"Environment": {
"PHP": {
"Version": "8.3.26",
"Path": "/Users/irongs/Library/Application Support/Herd/bin/php83"
},
"Laravel": {
"Version": "11.46.1",
"ConfigCached": false,
"RoutesCached": false,
"DebugEnabled": true
},
"Node": {
"Version": "v22.17.1",
"Path": "/Users/irongs/Library/Application Support/Herd/config/nvm/versions/node/v22.17.1/bin/node"
},
"NPM": {
"Version": "11.4.2",
"Path": "/Users/irongs/Library/Application Support/Herd/config/nvm/versions/node/v22.17.1/bin/npm"
},
"OperatingSystem": "Darwin"
},
"NativePHP": {
"Versions": {
"nativephp/desktop": "2.0.1.0",
"nativephp/php-bin": "1.1.1.0"
},
"Configuration": {
"Provider": "App\\Providers\\NativeAppServiceProvider",
"BuildHooks": {
"Pre": [],
"Post": []
},
"NotarizationEnabled": false,
"AzureTrustedSigningEnabled": false,
"CustomPHPBinary": false
}
}
}
Which operating systems have you seen this occur on?
macOS
Notes
The bundled PHP binary is extracted from /vendor/nativephp/php-bin/bin/mac/x86/php-8.3.zip and is missing the mbstring extension. When running php artisan tinker with Herd's PHP, mb_split() works fine, confirming the issue is specific to NativePHP's bundled binary.
I verified this by directly testing the bundled PHP binary:
cd /Users/irongs/Projects/mixlab/vendor/nativephp/desktop/resources/build/php
./php ../../../../../../artisan tinker
Output:
Psy Shell v0.12.12 (PHP 8.3.15 — cli) by Justin Hileman
> mb_split()
Error Call to undefined function mb_split().
This confirms that the bundled PHP binary (PHP 8.3.15) does not have the mbstring extension compiled/enabled, while the same function works correctly with Herd's PHP installation.