Silex un framework minimaliste PHP que vous devriez tester

Silex est un micro framework édité par SensioLabs, la société qui édite le fameux framework Symfony.

Un micro Framework

Silex est micro, vraiment micro. Même l’installation tiens en deux lignes:

$ curl -sS https://getcomposer.org/installer | php
$ composer.phar install

Une fois ces deux lignes exécutées vous vous trouvez avec:

Ça ne fait pas lourd, surtout quand on vient de Symfony. Mais quand on y réfléchi deux minutes avec juste ces trois éléments on peut faire beaucoup de choses.

With great power, comes great responsibility

L’architecture de base, celle que je viens de décrire est suffisante pour des petits prototypes, pour tester SIlex ou pour monter votre blog. Mais rapidement, mettre toute vote application dans index.php, voire dans le répertoire web ça devient gênant. C’est pourtant ce que vous trouverez en majorité dans les tutos sur le web.

Si votre projet est fait pour prendre de l’ampleur, pour être maintenu dans le temps par plusieurs personnes il va falloir rendre les choses un peu plus structurées.

Comme Silex n’impose rien, le développeur à le choix. Pour partir sur de bonnes bases je vous propose de partir sur le Skeleton proposé sur Github par SensioLabs: https://github.com/silexphp/Silex-Skeleton

Ça permet de découpler le cœur de l’application du modèle MVC, de séparer les parties publiques et privées. Vous noterez au passage que le composer.json de cet exemple c’est pas mal étoffé et que l’on retrouve des outils Symfony comme Twig ou la console.

L’idée n’est peut être pas pour vous de prendre tout le skeleton, mais en tout cas de s’en inspirer et monter une vraie structure compréhensible et maintenable dans le temps.

Pourquoi pas Symfony ?

J’utilise actuellement Silex parce que le projet que j’ai repris était en Silex, je n’ai pas eu le choix. Cependant je me rends à l’utilisation que Silex peut être une bonne option dans plusieurs cas :

Pour être honnête, pour des gros projets, des projets à longue durée de vie je vous conseille plutôt de partir sur du Symfony, la doc est mille fois plus abondante,  la structure est fixe et donc l’effort de maintenance et d’évolution sera beaucoup moins important.

Pour le cas d’une migration lente par contre je trouve que Silex est adapté si on part sur de bonnes bases.

Dans tous les cas, Silex vaut le coup d’oeil, au moins pour un side-project. On apprends beaucoup de choses et le chan IRC dédié est d’une grande qualité !