I. Chapitre 1 : Présentation du framework▲
I-A. C'est quoi un framework ?▲
C'est la bonne question à se poser au départ. Qu'est-ce qu'un framework ?
Voilà la définition qu'en offre Wikipédia :
« Un framework est un ensemble d'outils et de composants logiciels organisés conformément à un plan d'architecture et à des patterns, l'ensemble formant ou promouvant un squelette de programme. »
Détaillons un peu cette définition :
- un ensemble d'outils : on aborde directement l'aspect instrumental. Un framework n'est pas un pur concept, mais un ensemble concret d'outils ;
- un ensemble de composants logiciels : on dispose donc de « briques » logicielles toutes prêtes pour bâtir nos applications ;
- organisés conformément à un plan d'architecture et des patterns : les outils et les briques logicielles ne sont pas empilés en désordre, mais organisés selon une certaine logique, chaque élément étant bien à sa place. Cette architecture implique un modèle de développement, une sorte de guide, donc on ne dispose pas seulement d'éléments prêts à l'emploi, mais en plus on nous accompagne dans la façon de les utiliser ;
- l'ensemble formant ou promouvant un squelette de programme : en fait un framework nous offre l'essentiel de notre application, l'image du squelette est éloquente, on a une structure solide, bien établie : à nous d'ajouter de la vie.
Un framework s'adresse à un développeur, il est là pour lui faciliter la vie, lui faire gagner du temps, le guider dans l'organisation de son code, l'aider à le tester et le mettre à jour.
I-A-1. Pourquoi Laravel ?▲
On rencontre souvent dans les forums la question de savoir quel est le meilleur framework. La réponse la plus intelligente à donner est que le meilleur est celui qu'on connaît bien et qui répond à la fois à nos besoins et à notre compétence. Il y a toutefois des critères objectifs dans le choix d'un framework :
- la documentation : un framework mal documenté fait perdre plus de temps qu'il n'en fait gagner. Laravel est très bien documenté ;
- la communauté : lorsqu'on rencontre une difficulté, il est bon de recevoir une aide rapide pour ne pas rester bloqué longtemps sur un problème de détail. La communauté de Laravel est réactive ;
- la durée d'apprentissage : un temps d'apprentissage trop long fait perdre l'intérêt d'un framework même si on factorise notre connaissance en multipliant les cas d'application. Laravel est rapide à prendre en main tout en ne faisant aucune concession sur les fonctionnalités ;
- la pérennité : apprendre un framework pour apprendre quelques mois plus tard qu'il est abandonné est plutôt frustrant. Laravel est soutenu par une importante communauté de développeurs et d'utilisateurs, ce qui lui garantit une durée de vie raisonnable ;
- la richesse des outils : certains frameworks sont intéressants mais nécessitent de nombreuses greffes pour devenir vraiment opérationnels. Laravel est à la base suffisamment complet pour ne nécessiter que des extensions pour des besoins particuliers ;
- la simplicité : utiliser un framework et se retrouver à écrire un code plus complexe que celui qu'on aurait utilisé avec simplement du PHP n'est pas une opération judicieuse. Le code qu'on écrit avec Laravel est toujours simple, lisible, concis ;
- la version de PHP utilisée : Laravel est fondé sur PHP 5.3, ce qui permet d'utiliser par exemple les fonctions anonymes (lambda), les fermetures, les espaces de noms…
- les mises à jour : on n'est jamais à l'abri d'une faille de sécurité, le fait d'utiliser un framework est un peu à double facette : le code a été normalement bien écrit, validé, mais il est lisible par tout le monde et devient par le fait vulnérable, d'où la nécessité de procéder à des mises à jour en cas de découverte d'une faille. L'équipe de Laravel est assez réactive pour assumer cette tâche essentielle ;
- les standards de programmation : le code d'un « bon » framework est écrit en suivant les « bonnes pratiques » et il nous invite à faire de même. Laravel a souvent été salué pour la pureté de son code ;
- Les possibilités d'extension : on doit pouvoir facilement étendre les fonctionnalités d'un framework sans détruire son organisation. Laravel permet de le faire avec élégance en suivant toujours les mêmes principes avec ses bundles (paquets).
Convaincu ? Alors poursuivons notre découverte de Laravel…
I-A-2. Le site de Laravel▲
Le site de Laravel est aussi simple et épuré que le framework qu'il promeut :
Il contient :
- un historique de ce framework créé par Taylor Otwell en avril 2011 ;
- une collection de bundles à télécharger (ce sont des « briques » logicielles pour étendre le framework) ;
- une documentation détaillée ;
- des liens vers des ressources externes ;
- un lien de téléchargement.
Il y a également ce blog en français qui est déjà plus pointu et pourra vous apporter certaines réponses lorsque vous maîtriserez les bases du framework.
I-A-3. Télécharger Laravel 4▲
Pour télécharger Laravel 4 il suffit d'un petit clic ici et de télécharger le fichier ZIP.
Vous obtenez un fichier compressé contenant ces éléments :
Quelques fichiers et trois dossiers. Nous verrons tout cela en détail au cours de ce tutoriel. La première chose à prendre en compte est que le framework n'est pas dans ce paquetage, on y retrouve juste l'architecture. Depuis la version 4 le framework utilise « Composer » pour télécharger les fichiers et les mettre à jour, c'est pour cette raison que vous avez un paquetage réduit à un simple squelette émaillé de quelques fichiers.
I-A-4. Clonage avec Git▲
Au lieu de télécharger les fichiers comme nous venons de le voir vous pouvez aussi utiliser Git pour les cloner dans un dossier. Par exemple :
Il faut évidemment avoir Git installé sur votre machine. Mais de toute façon il vous le faudra pour faire fonctionner composer, comme nous le verrons dans le prochain chapitreChapitre 2 : Installation.
Vous trouverez la documentation originale de Laravel 4 ici.
Maintenant que nous avons vu toutes ces généralités, nous allons passer à des choses plus concrètes…