Laravel : utilisation (cas d'une page statique)

Vues

1. Le gabarit (vue générique / parent)

Avec Blade – le moteur de templates de Laravel –, il convient de créer un gabarit sous resources > views. Nommons le default.blade.php, et déposons-y ce contenu :


<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Page de test</title>
</head>
<body>

<h1>Mon site test</h1>

@yield('content')

</body>
</html>

Comme nous pouvons le voir, ce fichier HTML n'est pas complètement normé/standard. L'élément @yield('content') est en effet une des premières caractéristiques de Blade. L'élément yield permet d'agréger le contenu 'content' d'une page tierce, qui héritera du gabarit default.blade.php. Créons donc cette page tierce pour y voir plus clair.  

2. La vue (vue spécifique / enfant)

Dans le dossier views, créons un dossier test et créons-y un fichier informations.blade.php comprenant ce contenu :


@extends('default')

@section('content')
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>
@endsection

Dans ce fichier, nous pouvons comprendre le code comme suit : hérite du fichier default (sous-entendu default.blade.php), gabarit qui agrègera (@yield) le contenu de la section 'content'.  

Route

Comme vu dans l'article précédent, le fichier routes.php – présent dans le dossier app > Http – indique l'action à accomplir en fonction de l'URL saisie dans le navigateur. Nous allons donc établir la route comme suit :


Route::get('informations', function() {
	return view('test.informations');
});

Dans le présent exemple, Laravel récupère la vue située dans mon dossier resources > views > test > informations pour l'afficher à l'adresse http://localhost/monprojet/public/informations.   ... Mais cette formulation est un raccourci barbare. Préférons-lui :


Route::get('informations', 'TestController@index');

Cette instruction peut être traduite comme suit : pour la route menant à http://localhost/monprojet/public/informations, exécute la méthode index() du contrôleur TestController. Reste donc à créer ledit contrôleur pour que la route génère un résultat...  

Contrôleur

Dans le dossier App > Http > Controllers, créez un contrôleur TestController avec ce contenu :


<?php
namespace App\Http\Controllers;

class TestController extends Controller {

	public function index() {
		return view('test.informations');
	}

}

La méthode index() du contrôleur ici présent – à laquelle il a été fait appel dans la route ci-dessus – retourne la vue informations.blade.php issue du dossier test sous resources > views (on aurait tout aussi bien pu écrire test/informations, Laravel accepte les deux nomenclatures)  

Résultat

En se rendant sur la page : http://localhost/monprojet/public/informations, nous obtenons ce résultat :  

Conclusion

Rien ne justifie le choix d'un framework pour la réalisation d'un site statique, puisqu'il complexifie énormément les choses, comme vous pouvez le voir. Toutefois, dès lors que nous exploiterons des données dynamiquement et communiquerons avec la base de données, les procédures s'en trouveront allégées : moins de code, plus de sécurité ;) . Le prochain article s'attardera sur la création d'une page plus dynamique pour permettre d'exploiter les vues Blade, les routes et les contrôleurs un peu plus loin. Et ce sera toujours sans modèle ni base de données, pour y aller pas à pas. Enregistrer