kieranbrown/laraworker
最新稳定版本:v1.5.4
Composer 安装命令:
composer require kieranbrown/laraworker
包简介
Run Laravel on Cloudflare Workers via php-cgi-wasm
README 文档
README
Deploy Laravel applications to Cloudflare Workers via PHP WASM.
Laraworker packages your Laravel app into a compressed tar archive, then runs it on Cloudflare Workers using php-cgi-wasm. On each request, the Worker unpacks the app into an in-memory filesystem and processes it through the PHP WASM runtime — no traditional server required.
Requirements
- PHP 8.5+
- Laravel 12
- Node.js or Bun
- A Cloudflare account
Installation
composer require kieranbrown/laraworker
Then run the install command to configure your project:
php artisan laraworker:install
This will:
- Publish the
config/laraworker.phpconfiguration file - Add build scripts and dependencies to
package.json - Update
.gitignoreto exclude the.laraworker/build directory - Install npm dependencies (
php-cgi-wasm,wrangler, etc.) - Run an initial build into
.laraworker/
Configuration
After installation, configure your setup in config/laraworker.php:
return [ // PHP extensions to include in the WASM bundle 'extensions' => [ 'mbstring' => true, // ~742 KiB gzipped 'openssl' => true, // ~936 KiB gzipped ], // Directories included in the app bundle (relative to project root) 'include_dirs' => [ 'app', 'bootstrap', 'config', 'database', 'routes', 'resources/views', 'vendor', ], // Individual files to include 'include_files' => [ 'public/index.php', 'artisan', 'composer.json', ], // Regex patterns for files to exclude 'exclude_patterns' => [ '/\.git\//', '/\/node_modules\//', '/\/tests\//', // ... ], ];
Wrangler Configuration
Deployment settings like worker_name, account_id, and compatibility_date are configured in config/laraworker.php. The wrangler.jsonc is auto-generated into .laraworker/ at build time from these config values.
Usage
Laraworker provides five Artisan commands:
laraworker:install
Configure the project for Cloudflare Workers and run an initial build.
php artisan laraworker:install
php artisan laraworker:install --force # Overwrite existing files
laraworker:build
Build the Laravel application for production deployment. Caches config, routes, and views, then packages everything into app.tar.gz.
php artisan laraworker:build
laraworker:dev
Build and start a local development server using wrangler dev.
php artisan laraworker:dev
laraworker:deploy
Build and deploy to Cloudflare Workers.
php artisan laraworker:deploy
php artisan laraworker:deploy --dry-run # Build without deploying
laraworker:status
Check installation status, bundle sizes, and tier compatibility.
php artisan laraworker:status
How It Works
- Build — Your Laravel app is optimized (cached config/routes/views, classmap autoload) and packaged into a compressed
app.tar.gz - Deploy — The archive and PHP WASM binary are deployed to Cloudflare Workers as static assets
- Request — On cold start, the Worker fetches
app.tar.gz, unpacks it into an in-memory filesystem (MEMFS), and boots the PHP runtime - Process — Each HTTP request is routed through
php-cgi-wasm, which executes your Laravel application and returns the response
The entire bundle (WASM binary + app archive + Worker code) fits within Cloudflare Workers' free tier limit of 3 MB.
Custom Domain Setup
To serve your app from a custom domain, configure your Cloudflare account with the domain and set up routes. The wrangler.jsonc is auto-generated at build time from config/laraworker.php — for advanced wrangler settings, you can customize the stubs/wrangler.jsonc.stub template.
Make sure your domain is added to your Cloudflare account and DNS is configured.
Extensions
Two PHP extensions can be toggled in config/laraworker.php:
| Extension | Default | Size Impact |
|---|---|---|
mbstring |
Enabled | ~742 KiB gzipped |
openssl |
Enabled | ~936 KiB gzipped |
Disabling unused extensions reduces your bundle size, which can help stay within Cloudflare's tier limits.
License
Laraworker is open-sourced software licensed under the MIT license.
统计信息
- 总下载量: 34
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-02-26