Grav le CMS PHP flat file

Piqûre de rappelle, un CMS Flat File ?

Les CMS Flat files sont au croisement entre les CMS Statiques et les CMS plus traditionnels alimentés par une base de données. Je me doute que comme ça ne ce n'est pas bien plus clair, donc je vais essayer de détailler..

Si l'on prend un CMS classique (WordPress, par exemple). Toutes les données (pages, articles, plugins actifs, utilisateurs, …) sont rangés dans une base de données (mySql). Les fichiers ne contiennent donc "que" du PHP permettant de traiter ces données et les afficher sous la forme de site web.

Les avantages de cette technique sont que les bases de données sont faites pour stocker des données, et sont assez doués pour le faire. La lecture et l’écriture sont rapide, ce qui permet de faire des sites dynamiques avec une administration pour entrer le contenu dans la base de données.

De l'autre côté du scope existent les CMS Statiques (octopress par exemple). Ici, point de base de données, les fichiers sont en réalité de simples fichiers HTML que l'ont hébergé même sans PHP (Sur un drop box par exemple, pour prendre un cas extrême). Ici, pas d'administration la plupart du temps, mais des fichiers ont modifiée, puis une opération à faire pour "compiler" son site, et changer la version en ligne.

getgrav cms

Les avantages ici sont l'extrême simplicité d'hébergement : pas besoin de base de données, pas de risque de hack, pas besoin d'une grosse bande passante, … . De plus, les sauvegardes sont beaucoup plus simples : pas de base de données à sauver, il suffit juste de récupérer les fichiers, les zipper, et notre sauvegarde est fini.Enfin, entre les deux, nous avons les CMS Flat files. Ici, les fichiers sont bien en PHP, mais nous n'avons pas de base de données. Toutes les configurations sont dans des fichiers textes (en yml ou json généralement), tout comme les contenus.

Les avantages sont une sauvegarde toujours aussi simple qu'avec un CMS statique, tout en gardant un site dynamique. Nous avons par contre toujours besoin de PHP pour notre hébergement. De plus, il faut garder à l'esprit que les opérations d'écritures sur un fichier sont beaucoup plus lentes qu'une écriture dans une base de données, ce qui va nous limiter dans les possibilités que nous pourront mettre en place (des commentaires, par exemple, sont hors de question).

Octopress

Côté evolution ?

Ayant lu les commentaires de l'article de 2015, un des points qui ressortait beaucoup était l'absence de traductions ! Et bien devinez quoi ? L'admin dispose désormais de sa traductions française !

Screenshot grav dev

La documentation de grav quant à elle n'est toujours pas disponible en français mais elle est tout de même très complète et très claire. De plus l'équipe de developpement derrière le projet répond bien. Sur le dépôt Github du projet c'est 400 Pull / Request fermés, 8 ouverts et un qui a été validé hier !

Les plugins sont fréquemment mis à jour, les mise à jour se passe très bien et rien n'explose au vol !

Screenshot grav dev

Ressources disponibles

Grav ne dispose malheuresement pas d'une aussi grosse communauté que WordPress c'est vrai, mais il se défend quand même assez bien du côté de ses ressources disponibles. On retrouve 86 thèmes et plus de 200 plugins disponnibles gratuitement.

J'ai essayé par curiosité le plugin de gestion des utilisateurs et il m'a un peu bluffé. L'installation se fait très simplement via le panel d'administration. Mais ce plugin offre une gestion des droits assez poussée.