jgrossi/corcel
Eloquent-based models to query a WordPress database directly from Laravel or any Composer PHP app. Use WordPress as the CMS/admin backend while your app consumes posts, pages, taxonomies, options, menus, users, ACF fields, attachments, and more.
| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Laravel 12-Specific Bugs | Medium | Test thoroughly with Laravel 12’s new features (e.g., app models, bootstrapping). |
| WordPress Schema Changes | High | Monitor WordPress 6.4+ updates; use feature flags for breaking changes. |
| Performance Overhead | Medium | Aggressively cache Corcel queries (e.g., Redis); optimize WP_Query equivalents. |
| Authentication Complexity | Medium | Use Laravel’s auth system as a facade; sync WordPress users via events or a custom service. |
| Media Handling | Low | Leverage Laravel’s filesystem drivers for WordPress uploads (unchanged). |
| Plugin/Theme Conflicts | Medium | Isolate WordPress in Docker or use minimal plugins (unchanged). |
monolog, symfony/process)? Audit for indirect usage.composer require laravel/framework:^12.0
composer require jgrossi/corcel:^9.0
monolog) for indirect usage.Corcel::setApp($app); // If using non-Laravel PHP
Post::all()).Storage::disk('s3')).users table).pdo_mysql, fileinfo, and mbstring (standard in Laravel deployments).composer require jgrossi/corcel:^9.0.php artisan vendor:publish --tag=corcel-config.config/app.php:
'aliases' => [
'Corcel' => Jgrossi\Corcel\Facades\Corcel::class,
],
Corcel::post()->get()).Filesystem to handle WordPress uploads.post_updated).WP_DEBUG or savequeries=true in wp-config.php.laravel, wordpress, and corcel.Post::find(1)).wp_options bloat) separately.How can I help you explore Laravel packages today?