Maison >développement back-end >tutoriel php >Comment compiler des modèles de lame à partir de chaînes dans Laravel ?
Compilation de modèles de lame à partir de chaînes
Il est possible de compiler des modèles de lame à partir de chaînes plutôt que de s'appuyer sur des fichiers de vue. Pour ce faire, vous pouvez étendre la classe BladeCompiler existante et implémenter une méthode personnalisée.
Classe BladeCompiler étendue
<code class="php">namespace Laravel\Enhanced; use Illuminate\View\Compilers\BladeCompiler as LaravelBladeCompiler; class BladeCompiler extends LaravelBladeCompiler { /** * Compile blade template with passing arguments. * * @param string $value HTML-code including blade * @param array $args Array of values used in blade * @return string */ public function compileWiths($value, array $args = array()) { $generated = parent::compileString($value); ob_start() and extract($args, EXTR_SKIP); // Include view contents for parsing within a catcher try { eval('?>'.$generated); } // Silent flush output buffer in case of exception catch (\Exception $e) { ob_get_clean(); throw $e; } $content = ob_get_clean(); return $content; } }</code>
Utilisation
Vous pouvez utiliser la méthode étendue compileWiths pour compiler des modèles de lame à partir de chaînes :
<code class="php">$string = '<h2>{{ $name }}</h2>'; $compiled = BladeCompiler::compileWiths($string, array('name' => 'John Doe')); echo $compiled;</code>
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!