Logo Spiria

À la découverte de SilverStripe, un CMS/CMF solide pour programmeur averti

22 novembre 2017.
Il existe deux tendances « lourdes » chez les programmeurs œuvrant avec des CMS. Ceux qui se plaisent dans des environnements offrant le plus de fonctionnalités possible, et ceux qui préfèrent la page blanche, nourrie avec une API respectant les pratiques éprouvées que sont la programmation-objet et le modèle MVC. SilverStripe s’adresse clairement aux seconds.

Certains CMS tentent de concilier les deux tendances (par exemple Concrete 5 et Drupal), ce qui en fin de compte complique parfois les choses avec un mélange de modules qu’il faut défaire, contourner ou dompter, de stratégies backend empêtrées dans le frontend des administrateurs, etc.

À l’autre bout du spectre, il y a les frameworks purs et durs tels Laravel, Symfony, Zend, Codeigniter, YII pour ne nommer que ceux-là.

SilverStripe, tout comme MODx, Expression Engine et Processwire, cherchent aussi leur place sous le soleil du développement. Ce sont des frameworks, mais ils proposent à la base une convivialité qu’il faut autrement bâtir avec les outils précédemment mentionnés.

Créé en 2000, sous licence propriétaire, SilverStripe est maintenant distribué en code libre (licence BSD) et s’est transformé avec sa version 3 en framework autonome. Ce CMS néo-zélandais s’est forgé une belle place en propulsant les sites du gouvernement de ce pays. La version 4 vient tout juste d’arriver au moment d’écrire ces lignes.

Par souci de transparence, précisons que je n’ai jamais utilisé SilverStripe pour faire un site. Ma connaissance et mon analyse se limiteront à ce que j’ai pu constater en l’installant et en suivant les diverses vidéos trouvées sur le site de SilverStripe.

Commençons d’emblée par cette documentation. Les concepteurs de SilverStripe n’ont pas lésiné de ce côté. C’est clair, structuré, nous prenant peut-être un peu trop par la main. On sent que la compagnie éponyme cherche à attirer les programmeurs débutants. La compétition est féroce de nos jours entre Laravel, Symfony et consorts !

Leur site est beau, on nous promet facilité d’usage et tout le bonheur pour les usagers et les designers. Qu’en est-il ?

L’installation

De ce côté, pas trop de souci. SilverStripe s’assure pour nous que tous les préalables à l’installation sont présents. Les messages demeurent techniques et on sent tout de suite que SilverStripe, c’est pour les pros. J’ai eu quelques soucis avec MAMP PRO, SilverStripe n’aimant pas les variables génériques de MAMP dans le fichier php.ini. Après quelques hésitations, je suis passé outre et SilverStripe m’a laissé faire.

SilverStripe

Interface d’édition

Une fois dans le système, on est agréablement surpris par la simplicité de l’interface. L’arborescence est immédiatement accessible et le panneau de prévisualisation offre un aperçu direct à mesure qu’on édite une page. Cela parle tout de suite à un usager administrateur !

decorative

SilverStripe est très bien préparé pour afficher l’interface dans une langue autre que l’anglais. La version 4 tout comme la précédente souffre encore d’incompatibilités au niveau de l’éditeur. Cela est un peu étonnant.

decorative

Gestion des images

La gestion des images est centrée sur une bibliothèque, ce qui n’est pas sans rappeler Concrete5 ou Wordpress. L’interface est plutôt vieillotte, mais fonctionnelle. Contrairement à Concrete5, qui brille de ce côté, on ne peut remplacer une photo une fois qu’elle est intégrée dans la bibliothèque. Il est par contre aisé d’organiser les photos avec un système de répertoires. Et toujours ces petits soucis mystérieux : incapacité de télécharger telle ou telle image, miniature qui n’est pas créée. A-t-on été trop pressé de lancer la nouvelle version ou est-ce simplement mon installation locale qui fait défaut ?

decorative

Bon point, le CMS traduit spontanément les images dans des formats plus amicaux pour les différents types d’appareils, mais il n’existe aucun contrôle direct à ce sujet dans l’interface d’administration. J’imagine que l’API offre les contrôles nécessaires. Quelques extensions existent, mais je ne saurais dire si elles sont viables.

decorative

Gestion des usagers

La gestion des usagers ne cause pas non plus de problèmes. Outre les usagers eux-mêmes, on peut créer une hiérarchie complexe à l’aide des rôles et des groupes. L’interface n’est pas complètement traduite.

decorative

decorative

Et les extensions ?

Comme le reste, cela est plutôt aride comme présentation, clairement orientée programmeur.

decorative

Les thèmes

Il est relativement aisé de traduire une maquette HTML en page type SilverStripe. Créer les champs supplémentaires relève de l’API. On programme un site comme on le ferait avec un framework standard.

decorative

decorative

C’est tout…

C’est en effet à peu près tout en ce qui a trait à l’interface usager de base de SilverStripe. Ce CMS est vraiment basique. Le reste doit être conçu ou ajouté par un programmeur. Même la gestion multilingue doit se faire par l’activation d’un module tiers qui n’est donc malheureusement pas natif à SilverStripe ; la même tare se trouve chez Wordpress. La force de SilverStripe se trouve dans son API. Bref, une belle boîte à outils conforme aux standards. Il suffit, bien entendu, de maîtriser tout ça. SilverStripe possède son ORM (object-relational model), son moteur de rendu qui ressemble à Twig, et la méthodologie MVC est compréhensible pour tout programmeur digne de ce nom.

decorative

Conclusion

On aura rapidement deviné que SilverStripe est conçu pour les sites qui ont besoin d’une grande personnalisation et qui seront entièrement construits par un ou des programmeurs. La compagnie annonce que leur solution est conçue pour les sites exigeants demandant beaucoup de performance. Soit. Mon expérience superficielle du CMS m’empêche d’en dire plus. Son interface d’administration plaira certainement. Elle n’est cependant pas nouvelle, apparaît quelque peu en arrière de son temps.

Sans vouloir ou pouvoir déprécier ce CMS, force est de constater qu’il joue sur un terrain déjà très occupé. Il possède sans contredit sa niche sans pour autant offrir davantage que ses compétiteurs. Un programmeur qui investira dans l’apprentissage de l’API voudra par la suite en faire son principal outil de travail. C’est finalement une question de goût. Nous revenons ici au défi énoncé en début d’article. La décision de prendre telle ou telle solution dépend de nombreux facteurs dont certains sont tout à fait subjectifs. Cela n’est certainement pas une raison pour ne pas essayer SilverStripe. Trop de programmeurs ne possèdent qu’un marteau et voient tous les problèmes comme des clous.

Donc, avis aux professionnels de la page blanche, SilverStripe mérite qu’on s’y attarde et une documentation bien structurée vous attend.

N’hésitez pas à partager ici votre expérience !