Le blog du pangolin

Accueil > Programmation > PHP > Laravel > Laravel 4 - Les vues

Laravel 4 - Les vues

jeudi 23 mai 2013, par Super Pangolin

Les vues sont la partie visible de l’iceberg qu’est votre application. Il est préférable que tous vos affichages soient bien à part des traitements. Le modèle MVC fait ça pour vous à travers les vues.

Une vue peut ne contenir que du bête code html. Cependant, cela sera sûrement très rare (votre 404 par exemple, ou une page statique d’information).

Les vues sont stockées dans le répertoire « views »de votre application. Vous pourrez les organiser via des sous répertoires si leur nombre les rend compliquées à gérer.

Voici un premier exemple très basique :

  1. <!--  app/views/bonjour.php -->
  2.  
  3. <html>
  4. <body>
  5. <h1>Bonjour</h1>
  6. </body>
  7. </html>

Télécharger

Nous avons ici un beau code html. Pour l’afficher, on utilisera :

  1. Route::get('vue1', function(){
  2.     return View::make('bonjour');
  3. });

Télécharger

J’ai placé mon affichage dans une route par facilité pour ce tuto. Ce n’est bien entendu pas là qu’il faut mettre ce code dans vos productions.

Passons maintenant un paramètre à notre vue. Pour cela, rien de plus simple : un tableau comme deuxième argument de la méthode « make » avec les doublets nom_du_parametre => valeur.

  1. Route::get('vue2', function(){
  2.     return View::make('bonjour', array('nom' => 'Super Panolin'));
  3. });

Télécharger

Pour utiliser notre paramètre dans notre vue, on utilise du code PHP tout simple :

  1. <!--  app/views/bonjour.php -->
  2.  
  3. <html>
  4. <body>
  5. <h1>Bonjour <?php echo $nom; ?></h1>
  6. </body>
  7. </html>

Télécharger

Une autre syntaxe pour passer des paramètres à notre vue est :

  1. return View::make('bonjour')->with('prenomnom', 'Super')
  2.         ->with('nom', 'Panolin');

Télécharger

en enchaînant ainsi autant de « with » que nécessaire.

On peut également gérer des vues secondaires grâce à l’instruction « nest » :

  1.     return View::make('bonjour', array('nom' => 'Super Panolin'))->nest('sous_bonjour', 'sousVue', $parametres);

et de rajouter dans le vue principale le code

  1. <?php echo $sous_bonjour; ?>

C’est à peu près tout pour les vues. Laravel intègre un moteur de template simple, mais généralement suffisant : blade.

Les templates avec blade

Les templates que vous créerez seront eux aussi dans un répertoire de vos vues, mais auront l’extension « .blade.php »

Commençons simplement : affichons une variable. Blade remplace le « echo » par

  1. {{$maVariable}}

Ce petit bout de code va afficher le contenu de $maVariable.

Les autres syntaxes ne sont pas révolutionnaires. Elles permettent surtout de s’affranchir des balises PHP au milieu du html.

Les instructions conditionnelles

Les « if », pour parler simplement. Un exemple parle de lui même :

  1. @if (!empty($nom))
  2.     Bonjour {{$nom}}!!
  3. @else
  4.     Boinjour sombre inconnu(e) !!
  5. @endif

Télécharger

Les boucles

Sur le même principe, les boucles sont calées sur la syntaxe de base de PHP :

La boucle for :

  1. <body>
  2. {{ $nbArticles }} articles dans le panier <br />
  3. @for($i = 0; $i < $nbArticles; $i++)
  4.     Article {{ $i }} : {{ $panier[$i] }} <br />
  5. @endfor
  6. </body>

Télécharger

Pour un test complet, voici ma route :

  1. Route::get('vue3', function(){
  2.     $panier = array('Pommes', 'Poires', 'Cerises', 'kiwis', 'DVD vierges');
  3.     return View::make('commande')
  4.         ->with('panier', $panier)
  5.         ->with('nbArticles', count($panier));
  6. });

Télécharger

Et avec foreach :

  1. On peut aussi écrire :
  2. @foreach ( $panier as $indice => $article)
  3.     {{ $article }} est l'article numéro {{ $indice }} <br />
  4. @endforeach

Télécharger

Un dernier coup avec while :

  1. @while ( $article = array_shift($panier) )
  2.     {{ $article }} <br />
  3. @endwhile

Télécharger

Et c’est tout !! Rien de bien révolutionnaire, donc, mais qui permet d’éviter la multiplication des balises php dans les vues.

Comme suite logique des vues, nous allons voir comment générer des formulaires.

Un message, un commentaire ?

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.