Laravel, mon premier framework

Logo du framework Laravel

Au sens strict, c’est pas le premier. J’avais fait un peu de Bootstrap pendant ma formation à Armor code. Mais bon là ça n’a pas grand chose à voir. C’est un framework Php. Une saleté au premier abord pour un débutant, mais qui s’avère vraiment efficace une fois qu’on l’a pris en main. Même si là, « prendre en main » me semble quelque peu exagéré. Disons plutôt que j’ai galéré à comprendre les bases, pour ne finalement qu’effleurer les capacités du bouzin…

Frame-quoi ?

Un framework c’est, pour faire court (parce que j’aime quand c’est simple et qu’en plus j’ai pas envie), un outil (ensemble d’outils, en fait) conçu pour faciliter la vie d’un dev. Tu parles…
Bon en fait, si, ça la facilite. Mais pas au début. Les débuts, c’est la galère. Tu débutes, tu viens d’apprendre un langage (que tu « maîtrises » à peine), et là BIM ! Remballe ton code, frère, finalement y’a plus besoin. Enfin un peu, quand même. Mais l’idée, c’est que l’on doit réapprendre. Un framework a son propre langage (parfois même plusieurs, mais c’est assez chiant à expliquer alors on va passer là-dessus), son propre fonctionnement. Et là, on parle d’un framework basé sur un langage de programmation, pas sur du CSS comme Bootstrap. C’est pas la même musique.

« _ Ah ben faut faire ça en ligne de commande.
_ ¿Qué? « 
Extrait d’une conversation formateur/apprenant. Si si.

Ancien logo du framework Laravel.
Ouais je remets le logo. J’avais envie de mettre une image et je savais pas quoi mettre. Pis c’est l’ancien donc ça compte pas…

Quel drôle d’objet…

Alors déjà, pour préciser le contexte, j’ai découvert ce framework dans le cadre d’une courte formation de Concepteur développeur web, à Rennes, fin 2019. On a fait une petite appli en quatre jours pour ensuite faire un projet en groupe étalé sur plusieurs semaines.

En fait, le principe de Laravel, c’est de proposer dès le départ un système avec une architecture en MVC (Modèle Vue Contrôleur), un truc quasiment incontournable en programmation orientée objet. En programmation donc, on est en 2020.
Je vais pas m’étendre là-dessus, j’ai pas le temps et ce serait pas sympa, mais en gros (mais vraiment en gros, de très loin), ça permet, entre autres, de se concentrer sur la logique métier dans les contrôleurs. On met les routes dans un fichier de routes, les contrôleurs sont d’un côté, les vues de l’autre, pas de requêtes SQL à faire… Tout est fait pour faciliter le travail des devs pour la réalisation d’une application web. Conséquente, par contre, on prend pas Laravel pour faire un blog sur les champignons d’hiver.

Routes du fichier web.php dans Laravel
Petit exemple avec les routes du fichier web.php, ici dans une petite appli de carnet de vol développée en cours pour nous apprendre le framework.

Je vais pas rentrer dans les détails. Je dois bien l’avouer, j’écris cette page plusieurs mois après, et je suis passé à autre chose entre temps. Le but est juste de partager un bout de mon ressenti personnel.
Donc pour faire court, je dirais qu’on a tous un peu galéré, mais qu’au final je suis très content de l’avoir fait, ne serait-ce que pour avoir été familiarisé avec le concept de Modèle-vue-contrôleur. Et les objets. Car à part l’utilisation de quelques objets ça et là, je n’avais encore jamais touché à un système orienté objet. Là ce n’était qu’un framework, certes, mais c’est déjà ça. On mettra un peu plus les mains dans le dur avec Java, un de ces quatre. J’ai un peu hâte, j’avoue.

Extrait de code d'un controller dans Laravel
Petit exemple rapide, avec un extrait de code d’un contrôleur. Ce petit bout de code, qui rajoute un vol dans la base de données, est appelé par une des routes vues plus haut : Route::get(‘flights/add’, ‘HomeController@create’)->name(‘createFlight’);

Après l’apprentissage express (et je parle pas du framework node.js, là, juste qu’on a dû tout ingurgiter en 4 jours. Ça fait court pour des noobs), on est passés au projets en groupes… Et le job demandé était d’un autre niveau !
Mais ça, ce sera pour une autre fois 😉