FR | EN

Laravel, un framework PHP qui vaut le détour

Disons-le tout de suite, le PHP et moi, ça n’a jamais été le grand amour. Pourquoi ? Je ne sais pas si c’est que je suis difficile ou bien un puriste mais je dois que la syntaxe du PHP m’a toujours agacé au plus haut point… Ce n’est pas le seul langage qui me donne de l’urticaire mais voilà, c’est vrai que je ne suis pas fan.

Pourtant, je dois reconnaître la puissance du langage et au final, une certaine simplicité de programmation. La documentation est pléthorique et au final, il n’est pas très compliqué de pondre quelques lignes de php (que ce soit dans le mode web ou mode shell, puisqu’il faut souligner que le PHP n’est pas uniquement un langage « web » mais un langage de scripting shell aussi).

Une fois qu’on a dit cela et qu’on veut se lancer dans la création d’un site web de toute pièce mais qu’on n’a pas toute la vie devant nous pour ce faire, se pose la question « fatale » : quel framework vais-je utiliser ?

Pour PHP, il y en a un certain nombre voire même beaucoup. CodeIgniter, CakePHP, Yii, etc… Et j’en passe… A partir de là, dois-je dire. J’ai essayé la plupart des frameworks et mon test a consisté à deux choses principales :

  1. Lire la documentation et si disponible, le « QuickStart » et voir si en quelques pages, je comprenais les grandes lignes
  2. Faire l’installation, regarder l’arborescence et tenter de coder deux ou trois trucs ; principalement : authentification, pagination sur une table SQL et intégration avec Bootstrap et AJAX

CakePHP fut pas trop mal au début. En revanche, dès que j’ai rencontré un problème : j’entends, un comportement anormal alors que le code qu’on utilise est normalement un code tout à fait standard, c’est que je me suis perdu dans le framework. Impossible de suivre la logique du Framework, l’exécution du code qui passe dans des pages auxquelles on ne s’attend pas et surtout qu’on voit pas par quelle opération du Saint-Esprit, elles sont appelées… Bref… Je suis resté un peu dubitatif.

Yii m’a bien plus aussi. Simplicité, des facilités pour réaliser simplement des interfaces qui ne sont généralement pas évidentes à coder… Là : 3 lignes et pouf, ça marche. Mais au final, la clarté du Framework dans son fonctionnement interne, c’est un peu comme CakePHP, elle est plutôt très trouble. De plus, il m’a semblé mais peut-être, est-ce que je n’ai pas trop cherché, que Yii au final imposait un style de programmation pouvait rapidement devenir contraignant et limiter les possibilités de l’interface utilisateur. Et moi, je n’aime pas être contraint par l’outil. Autant j’aime qu’il me facilite le travail, autant j’ai une sainte horreur qu’il me bride en m’imposant des fins de non recevoir vis-à-vis de certaines techniques de programmation web.

C’est comme cela que je me suis retrouvé avec Laravel. Au début, je le trouvais moins attrayant que les autres et peut-être, un peu moins intuitif. Mais au bout de quelques heures de codage, il m’a séduit. Laravel a ceci de séduisant : il propose mais n’impose rien. A n’importe quel moment on peut redescendre dans les couches empilées du framework et exploiter le php « pur ». De plus, le modèle MVC qu’il propose n’est pas un carcan. On peut utiliser des bouts du modèle, les réarranger pour coder un peu plus efficacement et au final, cela donne la possibilité de pondre un code « optimisé » aux petits oignons. Seul hic mais au final, on s’habitue c’est le codage des vues avec une syntaxe intermédaire qui fait que le code source se retrouve à cheval entre HTML, PHP, Javascript (jquery) et syntaxe propre à Laravel. J’ai d’ailleurs mis un petit moment à réaliser que ça fonctionnait un peu comme un préprocesseur C/C++ avec le principe des macros. Autre inconvénient : trouver un éditeur qui reconnaisse l’ensemble des syntaxes sans mélanger les pinceaux (et à vrai, je n’ai pas trouvé de produit miracle : seul le notepad++ m’a paru efficace au final)

Tout cela pour dire que si vous vous interrogez sur le framework PHP à utiliser, jetez un oeil sur Laravel et évaluez-le bien. Ne soyez pas rebuté par exemple, par son système de routage qui paraît « très lourd » au départ par rapport aux autres framework. La vérité, c’est que Laravel propose mais n’impose pas. Si j’ai un peu de temps, j’essaierai de vous trouvez et vous expliquer via des bouts de code, le pourquoi de mes propos et préférences pour lui.

Si vous voulez y jeter un oeil : c’est par ici. Vous verrez, rien à voir avec Symphony ou autre où vous êtes paumés rien qu’en essayant de comprendre tous éléments à mettre en place pour écraser une mouche, Laravel a une structure simple et efficace. Pas besoin de passer trois jours pour uniquement comprendre où il faut mettre les pages pour éviter que le framework explose en vol sans donner vraiment la source du problème.

(article original : ici )

Leave a Reply