Craft cms : la rolls du cms

Dans le cadre de mon travail au Canada chez Akufen, j'ai été amené à utiliser le CMS craft cms.

C'est un CMS écrit en php sur le framework Yii 2.

Extrêmement bien pensé et ultra extensible, j'ai été très vite séduit !

TL-DR : WordPress avec tous les plugins = Craft cms

Enfin un vrai CMS !

Parmi les nombreuses fonctionnalités à retenir et surtout built in :

  • Gestion multi-langue
  • gestion des groupes et utilisateurs
  • Gestion des images et redimensionnement à la volée
  • Cache puissant
  • Headless possible
  • twig frontend ou html
  • Une version dédiée au ecommerce
  • preview en temps réel de vos entrées avec twig
  • commandes via la console qui permet de (presque) tout faire
  • Une gestion de queue job (que j'adore)

La documentation très bien faite parle d'elle même et je vous invite à la dévorer pour découvrir les possibilités.

Evidemment je ne m'attarderait pas à le comparer à d'autres CMS mais si vous l'utilisez correctement, il les bas tous haut la main.

Quelques subtilités

Définir le filesystem des fichiers

-> Très pratique pour avoir différents endroits pour stocker les fichiers ou les assets. Avec un module on peut y brancher un s3 ou autre remote folder.

Structure vs Categorie

Les 2 sont des structures en nodes. Structure = category généré par user

En vrac

  • Craft est gratuit pour un seul user
  • les licences sont plus chère la première année, souvent le double après.

Des plugins pour aller plus loin

La communauté est riche et propose une multitude de très bons plugins. Mais le cms est tellement bien fait que vous pouvez tout faire vous même avec un peu d'astuce.

Seomatic

Plugin de Seo très puissant : robots, sitemap, json-ld, champs opengraph ....

Navigation

Pour générer les menus et éviter de passer par les entrées. (On peut refaire avec les entrées sans plugin)

Les points négatifs

Des matrix dans des matrix !

Vous ne pouvez avoir une structure de champ en node infinie comme on pourrait le faire avec ACF sous wordpress. Le seul moyen d'y remédier est de passer par un plugin (neo) ou de faire des entrées dédiées. Le jour où les matrices pourront embarquer des matrices, ce cms sera parfait.

Beaucoup de champs = site plus lent.

Chaque champ crée une colonne dans la table des champs. Ça commence à faire de la bonne table quand le site est conséquent.

Une solution est de réutilisé des champs génériques, j'utilise par exemple, label1, label2, text1, text2, redactor1, ... que je réutilise au besoin dans les sections.

Identifier les champs inutilisés pour faire le ménage.

Je crois qu'un plugin le permet. Ca devrait être buil-in.