pollora / framework
The Laravel framework for WordPress: Laravel routing, Blade and Eloquent, with PHP 8 attributes for hooks, post types, taxonomies and REST routes.
Package info
Type:project
pkg:composer/pollora/framework
Requires
- php: ^8.3
- coduo/php-humanizer: 5.0.3
- cweagans/composer-patches: ^2.0
- illuminate/auth: ^13.35
- illuminate/config: ^13.35
- illuminate/console: ^13.35
- illuminate/database: ^13.35
- illuminate/routing: ^13.35
- illuminate/support: ^13.35
- laravel/prompts: ^0.3.24
- log1x/sage-directives: ^2.0
- nwidart/laravel-modules: ^13.0
- pollora/abilities: ^1.0
- pollora/ajax: ^1.1
- pollora/colt: ^10.0.1
- pollora/entity: ^1.2
- pollora/helper-overrider: ^1.2
- pollora/hook: ^1.4
- pollora/option: ^1.1
- pollora/query: ^1.0
- roots/bedrock-autoloader: ^1.1
- spatie/php-structure-discoverer: ^2.4
- symfony/process: ^7.4 || ^8.0
- watson/rememberable: ^7.1
Requires (Dev)
- brain/monkey: ^2.7
- driftingly/rector-laravel: ^2.6
- larastan/larastan: ^3.12
- laravel/pint: ^v1.32.1
- mockery/mockery: ^1.6.15
- orchestra/testbench: ^11.1.0
- pestphp/pest: ^v3.8.2
- pestphp/pest-plugin-type-coverage: ^3.6
- php-stubs/wordpress-stubs: ^7.1
- symfony/var-dumper: ^7.4 || ^8.0
- symplify/vendor-patches: ^12.1
- szepeviktor/phpstan-wordpress: *
- wp-cli/wp-cli: ^2.12
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- dev-develop / 13.x-dev
- v13.35.2
- v13.35.1
- v13.35.0
- v13.34.6
- v13.34.5
- v13.34.4
- v13.34.3
- v13.34.2
- v13.34.1
- v13.34.0
- v13.34.0-beta.2
- v13.34.0-beta
- v13.32.0-beta.9
- v13.32.0-beta.8
- v13.32.0-beta.7
- v13.32.0-beta.6
- v13.32.0-beta.5
- v13.32.0-beta.4
- v13.32.0-beta.3
- v13.32.0-beta.2
- v13.32.0-beta
- v13.4.4
- v13.4.3
- v13.4.2
- v13.4.1
- v13.4.0
- v13.3.0
- v13.2.0
- v13.1.0
- v13.0.0
- v12.0.0
- dev-release/v13.35.2
- dev-feat/async-list
- dev-feat/make-action-async
- dev-feat/async-doctor
- dev-feat/async-queue-opt-in
- dev-feat/async-attribute
- dev-feat/async-queue-driver
- dev-fix/login-language-switcher
- dev-fix/make-plugin-remove-bin
- dev-chore/untrack-editor-files
- dev-docs/readme-refresh
- dev-release/v13.35.1
- dev-fix/issue-419
- dev-release/v13.34.6
- dev-release/v13.34.5
- dev-feature/typed-meta
- dev-release/v13.34.0-beta
- dev-fix/block-theme-404-status
- dev-feature/html-block-patterns
- dev-hotfix/v13.4.4
- dev-feature/cli-binary
- dev-feature/phpstan-baseline-cleanup
- dev-feature/make-block
- dev-feature/pest-migration
- dev-feature/code_cleanup
- dev-feature/plugin_module
- dev-codex/rédiger-spécifications-architecture-hexagonale
- dev-ca6y3e-codex/trouver-et-corriger-un-bug
- dev-feature/command_arg_factorisation
- dev-feature/domain_centric_architecture
- dev-feature/external_theme_manager
- dev-feature/hook_rework
This package is auto-updated.
Last update: 2026-10-07 20:17:06 UTC
README
Pollora is the Laravel framework for WordPress. WordPress runs inside a Laravel application: the front end uses Laravel routing, controllers, Blade and Eloquent, while the WordPress admin, database, editors' workflow and plugins keep working as usual. Hooks, post types, taxonomies and REST routes are declared with PHP 8 attributes and registered by auto-discovery, so functions.php stops being the place where everything piles up.
Website · Documentation · Why Pollora · How Pollora compares with Acorn, Sage, Radicle and Corcel · 1-minute tour
Installation
Create a project with the Pollora CLI, or with Composer through the skeleton. See the installation guide:
composer global require pollora/cli
pollora new my-project --ddev
# or
composer create-project pollora/pollora my-project
Requirements:
- PHP 8.4+ for a new project (the skeleton's lock file ships Symfony 8; this package alone accepts PHP 8.3)
- Laravel 13.35 (Pollora's version numbers follow the Laravel release it is built on)
- WordPress 7.1+
Quick start
use Pollora\Attributes\Filter; use Pollora\Attributes\PostType; use Pollora\Attributes\PostType\HasArchive; use Pollora\Attributes\PostType\Supports; #[PostType] #[HasArchive] #[Supports(['title', 'editor', 'thumbnail'])] class Book {} class Seo { #[Filter('document_title_parts')] public function title(array $parts): array { /* ... */ return $parts; } }
Key features
- WordPress routing via
Route::wp()with template hierarchy support - PHP attributes for hooks (
#[Action],#[Filter]), post types (#[PostType]), taxonomies (#[Taxonomy]), scheduling (#[Schedule]), REST routes (#[WpRestRoute]), AJAX handlers (#[Ajax]), WP-CLI commands (#[WpCli]) and abilities (#[Ability]) - Typed meta and roles declared in code:
#[Meta],#[PostMeta],#[TermMeta],#[Role],#[ModifyRole] - Gutenberg blocks rendered with Blade, and Block Bindings sources for meta and options
- Auto-discovery system that scans and registers components automatically
- Blade templates with Sage Directives for WordPress data
- Theme system with dynamic PSR-4 autoloading, parent/child theme support, and Vite asset management
- WordPress authentication guard and password hashing integration
- Event dispatching for WordPress core, WooCommerce, Gravity Forms, and Yoast SEO
- Module system via nwidart/laravel-modules
pollora:doctor, which finds the setups that fail without an error and prints the fix (also in Tools › Site Health)
Documentation
Full documentation is available at pollora.dev.
Learn more:
- WordPress hooks with PHP 8 attributes
- Custom post types and taxonomies with PHP attributes
- How Pollora runs WordPress inside Laravel
- AI coding agents for WordPress projects (Nectar)
Testing
composer test # Run all checks (Rector, Pint, PHPStan, Pest, type coverage) composer test:unit # Run Pest tests with 100% coverage requirement composer test:types # Run PHPStan static analysis composer test:lint # Check code style with Pint composer test:refacto # Check refactoring rules with Rector composer test:type-coverage # Check type coverage (98% minimum)
Changelog
All notable changes are documented in CHANGELOG.md.
Credits
Pollora builds on the work of Roots, a constant source of inspiration: themes, blocks and plugins are built with @roots/vite-plugin, the project follows the Bedrock layout with roots/bedrock-autoloader, and Blade ships Sage Directives. The WordPress models are built on Colt, a fork of Corcel.
Contributing
Contributions are welcome: see the contributing guide. Report security issues privately, as described in the security policy.
License
Pollora is open-source software licensed under the MIT license. © RuBee group
Parts of the WordPress integration (Pollora\Support\WordPress, Pollora\Hashing\WordPressHasher) originate from work by Jordan Doyle, released under the 0BSD and WTFPL licenses.