Maison > Article > développement back-end > Apprentissage du module Laravel View
Cet article vous présente principalement les informations pertinentes sur le module View du didacticiel d'apprentissage Laravel. Le module View est présenté de manière très détaillée à travers un exemple de code. Il a une certaine valeur d'apprentissage de référence pour les études ou le travail de tous les amis qui en ont besoin. Apprenons avec l'éditeur ci-dessous.
Avant-propos
Cet article vous présente principalement les informations pertinentes sur le module View dans Laravel et les partage pour votre référence et votre étude. Mots suivants Pas grand chose à dire, jetons un œil à l'introduction détaillée.
Cet article est basé sur l'analyse et l'écriture du code du module de routage de la version Laravel 5.4
Structure des fichiers
Le processus approximatif de présentation visuelle :
1 , démarrez le rendu de la vue en appelant la méthode view()
(3) Si le fichier n'existe pas, une exception sera signalée : la vue correspondante Le fichier n'existe pas ; si le fichier existe, le moteur correspondant est appelé pour l'analyse selon le nom du suffixe ;
3. S'il s'agit d'un suffixe CSS, le moteur de fichiers est utilisé et la méthode d'appel principale est file_get_contents ;
4. S'il s'agit d'un suffixe php, utilisez le php. moteur. La méthode d'appel principale est
ob_start(); include $__path; ob_get_clean();5 S'il s'agit du suffixe blade.php, en utilisant le moteur blade ; >
Ce moteur prendra l'initiative de mettre en cache. Si le fichier cache n'a pas expiré, le fichier cache sera appelé directement sinon, il sera recompilé et le fichier cache sera généré via sha1 (situé dans storage/framework). /views );
Compilation du moteur Blade
Le moteur Blade compile les fichiers via un grand nombre de Implémenté par correspondance et remplacement réguliers ;
Pendant le processus d'analyse, Blade utilisera d'abord la fonction token_get_all pour obtenir les jetons dans le fichier de vue qui sont pris en compte par l'interpréteur PHP est la partie HTML (T_INLINE_HTML), puis effectue le remplacement régulier des parties Commentaires, Extensions, Déclarations et Echos dans l'ordre
protected $compilers = [ 'Comments', // 注释部分 'Extensions', // 扩展部分 'Statements', // 语句块 (@ 开头的指令) 'Echos', // 输出 ]; protected function parseToken($token) { list($id, $content) = $token; if ($id == T_INLINE_HTML) { foreach ($this->compilers as $type) { $content = $this->{"compile{$type}"}($content); } } }
Partie Commentaire
Le code principal est le suivant, remplacez le code enveloppé par le symbole de commentaire "{{-- --}}" par une chaîne vide;
Partie d'extension
preg_replace("/{{--(.*?)--}}/s", '', $value);Ajoutez une fonction de rappel de traitement personnalisé à BladeCompiler via la méthode d'extension et effectuez une correspondance et un remplacement de texte personnalisés sur le contenu du modèle
Le code principal se trouve dans le fichier IlluminateViewBladeCompiler, comme suit :
// 自定义的文本替换扩展 数组 protected $extensions = []; protected function compileExtensions($value) { foreach ($this->extensions as $compiler) { $value = call_user_func($compiler, $value, $this); } return $value; }
Cette partie est le framework intégré comme @if Remplacement du texte des instructions et des instructions enregistrées via la méthode directive
Les instructions fournies par le framework comportent les dix parties suivantes :
ViewCompilersConcernsCompilesAuthorizations : vérification des autorisations
{ !!} génère des caractères non échappés, utilisés pour afficher la valeur des balises HTML natives ;
{{ }} génère normalement et prend en charge le remplacement de l'opérateur ternaire ;
{{{ }}} génère des caractères d'échappement et prend en charge le remplacement de l'opérateur ternaire
Apprendre le transfert de tableaux vers des vues dans le framework Laravel 5
Le modèle, le contrôleur et les vues du framework Laravel 5 Apprentissage des processus
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!