Concrete CMS : Quand WordPress ne suffit plus et que tout réécrire from scratch en Laravel vous semble trop
Vous connaissez ce sentiment quand un client demande un site « simple », mais qu'une semaine de révisions plus tard, le projet se transforme en monstre avec des types de données personnalisés, un système de permissions complexe, et le besoin d'éditer le contenu directement sur la page ? Vous ouvrez WordPress et vous réalisez que vous allez vous noyer dans les plugins. Vous regardez Laravel et vous comprenez que vous allez écrire un panneau d'administration pendant trois semaines. Quelque part entre les deux se trouve Concrete CMS — un projet avec une longue histoire qui essaie de se trouver à mi-chemin : offrir aux développeurs la liberté et aux gestionnaires de contenu la commodité.
Auparavant, le projet s'appelait concrete5. Le changement de nom en Concrete CMS s'est fait il y a quelques années, ce qui a introduit une certaine confusion dans les dépôts, mais d'un point de vue architectural, c'est toujours le même outil PHP solide.
Qu'est-ce que c'est exactement
Concrete CMS est un système de gestion de contenu Open Source écrit en PHP. Pour être direct, c'est un CMS pour ceux qui adorent la programmation orientée objet mais qui ne veulent pas perdre de temps sur des choses basiques comme l'authentification ou la gestion de fichiers.
La fonctionnalité principale que les gens adorent (ou détestent, selon le point de vue) est l'édition « contextuelle ». Vous allez sur le site, vous cliquez sur le bouton « Éditer », et vous modifiez les blocs directement dans l'interface frontend. Pour les clients, c'est de la magie. Pour les développeurs, c'est une architecture construite sur des blocs et des pages.
Qu'est-ce qui peut accrocher un développeur
Contrairement à de nombreux systèmes qui essaient d'être « juste un moteur de blog », Concrete a été conçu dès le départ comme un framework applicatif.
Gestion flexible des blocs
Dans Concrete, tout est composé de blocs. Vous voulez créer un nouveau type de contenu ? Vous créez un dossier avec un contrôleur et quelques fichiers Vue. Le système les récupère automatiquement, crée les tables nécessaires dans la base de données, et les ajoute à l'interface de glisser-déposer. C'est plus pratique que de gérer des champs personnalisés avancés dans d'autres systèmes.
Gestion des permissions intégrée
Ce n'est pas juste « admin » et « éditeur » ici. Vous pouvez configurer l'accès à un bloc spécifique sur une page spécifique pour un groupe d'utilisateurs spécifique à un moment spécifique. Ça paraît excessif jusqu'à ce que vous ayez à construire un portail corporate pour une entreprise de 500 personnes.
La vie sur la pile PHP
Le projet utilise activement les standards modernes. Sous le capot, vous trouverez Composer pour la gestion des dépendances et des composants Symfony. Cela signifie que vous n'avez pas besoin d'apprendre un « dialecte PHP spécial », comme c'est souvent le cas avec les systèmes legacy.
Comment déployer le projet en local
Le README du projet est assez concis, ce qui est rafraîchissant — pas de verbiage inutile. L'installation est classique pour un projet PHP.
D'abord, clonez le dépôt :
git clone https://github.com/concretecms/concretecms.git
cd concretecms/
Puis installez les dépendances via Composer :
composer install
Au fait, si vous êtes habitué à Docker, la communauté propose de nombreuses images prêtes à l'emploi, bien que le dépôt officiel ne mette pas les instructions de conteneurisation en avant. Après avoir installé les dépendances, vous aurez besoin d'un serveur web (Apache ou Nginx) et d'une base de données MySQL.
Nuances techniques et héritage
Le dépôt a actuellement la branche 9.x active. C'est important car la transition de la 8.x à la 9.x a été assez douloureuse en raison des mises à jour de l'interface et des changements dans les bibliothèques internes. Si vous avez hérité d'un projet sur une ancienne version, le dépôt dispose de branches séparées pour la 8.5.x et même la 5.7.x.
Point intéressant : Concrete CMS n'a pas honte de son âge. Le dépôt existe depuis 2014, et le système lui-même est encore plus ancien. Cela apporte de la stabilité, mais parfois vous pouvez tomber sur des solutions dans le code qui semblent lourdes selon les standards actuels. D'un autre côté, le projet compte près de 500 Issues ouvertes. Cela peut intimider, mais si vous regardez de plus près — il y a une discussion active sur les bugs et les nouvelles fonctionnalités, ce qui pour un projet Open Source est plutôt un bon signe qu'un mauvais.
Pour quelles tâches est-ce adapté
Je ne recommanderais pas d'utiliser Concrete CMS pour une petite landing page — vous passerez plus de temps à configurer l'environnement qu'à construire le site. Mais ça fonctionne très bien dans ces cas :
- Sites corporate complexes où différents départements gèrent le contenu.
- Intranets et portails internes avec des tonnes de permissions d'accès.
- Projets où il est absolument critique que le client voie les modifications de texte immédiatement dans le design, pas dans le panneau d'administration.
Verdict : Faut-il l'essayer
Si vous êtes fatigué des limitations des CMS populaires mais que Symfony CMF vous semble être une boîte à outils trop complexe, Concrete CMS est un compromis honnête. Il y a une courbe d'apprentissage, et la documentation vous fait parfois suer, mais la flexibilité qu'il fournit « out of the box » rentabilise souvent le temps investi.
Le mieux est de commencer par explorer leur documentation, et si quelque chose se passe mal — consultez le forum. La communauté n'y est pas aussi massive que celle de WordPress, mais elle est plus orientée ingénierie et réactive.
Projets similaires