Utiliser les vues
Introduction​
Les vues contiennent le code HTML fourni par votre application et séparent votre logique de contrôleur/application de votre logique de présentation.
Configuration​
Bow Framework implémente 2 moteurs de template et le template par défaut est Tintin.
La configuration des vues se trouve dans le fichier view.php du dossier config/.
Spécifiez le nom du template à utiliser avec l'option engine de la configuration, cette option peut prendre les valeurs suivantes : tintin, twig et php. Par défaut Bow utilise tintin.
Notez que si vous définissez php, le rendu des vues se fera sans moteur de template.
Vous pouvez aussi changer l'extension de template en modifiant la valeur de l'entrée extension. Vous verrez également que les vues sont stockées dans le répertoire templates par défaut.
Création de vue​
Une simple vue peut ressembler Ă ceci :
<!-- View stored in templates/greeting.tintin.php -->
<html>
<body>
<h1>Hello, {{ $name }}</h1>
</body>
</html>
Après avoir modifié et sauvegardé votre vue dans templates/greeting.tintin.php, vous pouvez maintenant l'envoyer aux utilisateurs avec le helper view comme ceci :
$app->get('/', function() {
return view('greeting', ['name' => 'Tintin']);
});
Utilisation​
Exemple d'utilisation avec la classe statique View::parse :
View::parse(string $view, array $data = []): View
| Paramètre | Type | Description |
|---|---|---|
$view | string | Le nom de la vue, sans extension, relatif au dossier des vues |
$data | array | Les données passées au template |
use Bow\View\View;
echo View::parse('nom-de-la-vue-sans-extension');
Pour passer des variables Ă la vue :
use Bow\View\View;
echo View::parse('nom-de-la-vue-sans-extension', ['name' => 'bow']);
Vous pouvez utiliser le helper view qui s'utilise de la même façon.
Pour fixer un code de statut HTTP, utilisez plutĂ´t
response()->render('vue', $data, $code) (voir la documentation des
réponses HTTP). View::parse() ne prend pas de code.
Avec la vue suivante :
<!-- View stored in templates/greeting.tintin.php -->
<html>
<body>
<h1>Hello, {{ $name }}</h1>
</body>
</html>
Exemple dans un contrĂ´leur :
namespace App\Controllers;
use App\Controllers\Controller;
class HomeController extends Controller
{
/**
* Show hello page
*
* @return mixed
*/
public function show()
{
return view('greeting', ['name' => 'Bowphp']);
// Ou
return $this->render('greeting', ['name' => "Bowphp"]);
// Ou
return response()->render('greeting', ['name' => "Bowphp"]);
}
}
Introduction Tintin​
Tintin est un template PHP qui se veut très simple et extensible. Il peut être utilisable dans n'importe quel projet PHP. Par défaut, Tintin est le moteur de template utilisé par Bow Framework.
Hello, {{ $name }}.
Bien entendu, vous n'êtes pas limité à afficher le contenu des variables transmises à la vue. Vous pouvez également faire écho aux résultats de toute fonction PHP. En fait, vous pouvez insérer n'importe quel code PHP dans une instruction echo Tintin:
Hello, {{ strtoupper($name) }}.
Les instructions Tintin
{{ }}sont automatiquement envoyées via la fonction PHPhtmlspecialcharspour empêcher les attaques XSS.