Aller au contenu

Une Web App au Laravel, mon préféré!

Laravel Logo Blanc

Suite à mon précédent article au sujet du désastreux Symfony2, plusieurs personnes m’ont conseillé de tester 2 Framework: Slim, ou Laravel. En me renseignant un peu, les deux semblent coller à ce que je cherche, mais Laravel est un peu plus complet, y a de quoi bien s’amuser avec. Alors on tente le coup!

L’objectif ici est de réaliser l’architecture d’une API rapidement, simplement, et qui soit flexible.

Pour créer un nouveau projet, un coup de composer et c’est réglé :

Ici, on a une arborescence qui parle bien. L’essentiel pour commencer se trouve dans :

  • app: nos contrôleurs, modèles, exceptions, et des surprises… C’est ici qu’on va coder à mort 🙂
  • config: nos fichiers de config, sous forme de tableau PHP! Enfin je retrouve un peu de bon sens! (Dans SF2, les fichiers de config sont très mal fait et se baladent partout je trouve)
  • database: tout ce qui gère notre BDD, la migration pour faire évoluer notre code sans devoir mettre les mains dans PhpMyAdmin (en avant comme en arrière), et d’autres choses
  • public: notre point d’entrée de notre app, on fait rien ici (ou bien je n’ai rien eu à faire pour le moment)
  • resources: nos vues, traductions, assets… Tout ce qui est « design »
  • tests: pour faire nos tests unitaires, je n’ai pas encore fouiné de ce coté là
  • vendor: notre bon vieux dossier pour nos dépendances via composer 🙂

Même si on s’y reconnait, on sait pas trop par où commencer. Heureusement la doc est là et très bien faite. Pour faire simple, Laravel a une liste de routes (c’est comme une route en vrai, qui vous permet d’aller de A vers B) qui vont pointer vers notre code (fonction, ou action). Pour le faire, c’est simple :

Voilà. C’est clair, net et précis. Et comprehensible! Au cas où, je te détaille ce qu’il se passe. On ajoute à notre objet route l’action « hello » de notre contrôleur « IndexController », qui répondra à la requête « /hello » en GET. Si tu veux la même en POST, suffit de faire :

  • Euh attends mec, c’est quoi cette appel statique là??
  • Ouais je sais, c’est LE TRUC de Laravel. Il utilise ce qu’on appelle des Facades. J’ai pas tout compris, donc si un jour tu peux m’expliquer j’te paye une bière direct!
  • Deal 😀

Bon maintenant qu’on a notre route qui pointe, faut coder!

Et voilà, notre route retourne notre JSON. Tout simplement. (OMG, Bye Bye Symfony!)

Au cas où, pour retourner une vue :

Ici on a une base pour coder ce qu’on veut. On est loin d’avoir exploité toute la puissance de Laravel (validateurs, modèles avec Eloquent, migrations, middlewares…), mais ça rendrait l’article beaucoup… Beaucoup… BEAUCOUP trop long!
Mais si t’es gentil, je te ferai un tuto pour construire l’API en entier, avec du MongoDB derrière, du OAuth2.0, et pleins d’autres trucs trop cool.

Sur ce, je vais continuer avec Laravel, qui semble répondre à mes besoins « finger in the nose » 😀