Société holding · Béthune, Pas-de-Calais

Pollora

Un framework qui fait tourner WordPress à l’intérieur de Laravel. Open source, sous licence MIT, né de la pratique quotidienne d’une agence qui livre du WordPress depuis 2018.

Ce qu’il change

Déclarer un type de contenu dans WordPress demande un appel à register_post_type(), un tableau de libellés, et un add_action('init') pour l’accrocher. Une trentaine de lignes qui ne disent rien de plus que « ceci est un livre ».

app/Cms/Book.php
use Pollora\Attributes\PostType;
use Pollora\Attributes\HasArchive;
use Pollora\Attributes\Supports;
use Pollora\Attributes\ShowInRest;

#[PostType('book')]
#[HasArchive]
#[Supports(['title', 'editor', 'thumbnail'])]
#[ShowInRest]
class Book {}

La classe n’a pas besoin d’être enregistrée : elle est découverte. Les libellés se déduisent du nom. Ce qui reste à l’écran est ce que le développeur voulait dire — le reste est du bruit que le framework absorbe.

Le routage suit la même logique. Les routes Laravel prennent la main quand elles existent, la hiérarchie de templates WordPress assure le reste.

routes/web.php
Route::wp('single', [PostController::class, 'show']);
Route::wp('page', 'contact', [ContactController::class, 'index']);

Pour qui

Si vous travaillez avec Bedrock, Sage ou Radicle, vous êtes déjà chez vous. Roots a montré la voie : Composer plutôt que du FTP, Blade plutôt que des fichiers de template, une configuration par environnement, une vraie chaîne d’assets. Ce terrain-là est acquis, et Pollora ne le rediscute pas.

La différence tient à un sens de lecture. Acorn — au cœur de Radicle — amène des composants de Laravel dans WordPress : le conteneur, Blade, la configuration, Eloquent, les routes pour les pages virtuelles. Pollora prend le problème dans l’autre sens : l’application est un Laravel 13 complet, avec ses service providers, son injection de dépendances, son routage et ses modules — et WordPress tourne dedans.

Ce n’est pas un reproche adressé à Roots : sans Bedrock et Sage, ce public n’existerait pas. C’est l’étape d’après, pour ceux qui ont fini par vouloir Laravel en entier.

Pourquoi Laravel

D’abord parce que c’est agréable à écrire. L’argument a l’air léger, il ne l’est pas : un développeur qui prend du plaisir écrit mieux, documente davantage et reste plus longtemps. L’API de Laravel a été dessinée pour se lire, et ça se sent dès la première heure.

Ensuite parce que rien n’est à réinventer. Eloquent, les files d’attente, le cache, les événements, les commandes Artisan, les migrations, Pest — tout existe, documenté, testé et maintenu par d’autres. Un socle maison aurait demandé des années pour en atteindre le dixième, et il aurait fallu le maintenir ensuite.

Puis parce que la compétence est disponible. Recruter quelqu’un qui connaît Laravel est simple ; recruter quelqu’un qui connaît un framework interne ne l’est pas. Pour une agence, le choix d’un socle est autant une décision de recrutement qu’une décision d’architecture.

Enfin parce que les deux outils ne se marchent pas dessus. La rétrocompatibilité de WordPress est sa plus grande force : vingt ans de sites qui tournent encore. C’est aussi ce qui l’empêche d’adopter le PHP moderne sans casser la moitié du web. Laravel n’a pas cette contrainte. Superposer les deux laisse chacun sur son terrain — WordPress tient le contenu et les éditeurs, Laravel tient l’application.

Ce qu’il y a dans la boîte

Attributs PHP 8
Hooks, post types, taxonomies, planifications et routes REST déclarés sur la classe
Découverte automatique
Les composants sont scannés et enregistrés sans ligne de déclaration
Routage hybride
Les routes Laravel priment ; la hiérarchie de templates WordPress prend le reste
Thèmes en Blade
Autoload PSR-4, thèmes parent et enfant, chaîne d’assets Vite
Authentification
Le guard et le hachage de mots de passe Laravel branchés sur WordPress
Événements
WordPress, WooCommerce, Gravity Forms et Yoast dispatchés par Laravel
Modules
Découpage applicatif via nwidart/laravel-modules
Installation
composer create-project pollora/pollora my-project

D’où il vient

Pollora ne sort pas d’un laboratoire. Les problèmes qu’il règle sont ceux qu’on rencontre en livrant des sites : un register_post_type() recopié pour la centième fois, des hooks éparpillés dans functions.php, un thème qu’on ne peut pas tester. C’est le travail d’une équipe qui fait du WordPress tous les jours chez AmphiBee, rendu public sous licence MIT.

Vingt-cinq dépôts publics, une couverture de tests tenue à 100 %, PHPStan, Pint et Rector dans la chaîne d’intégration. Le paquet principal totalise 3 771 téléchargements sur Packagist — chiffre relevé à la compilation de cette page.

PHP 8.3Laravel 13WordPress 7.0+MIT