Maison > développement back-end > tutoriel php > Comment compiler des modèles de lame à partir de chaînes dans Laravel ?

Comment compiler des modèles de lame à partir de chaînes dans Laravel ?

Linda Hamilton
Libérer: 2024-10-22 13:07:03
original
1103 Les gens l'ont consulté

How to Compile Blade Templates from Strings in 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>
Copier après la connexion

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>
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal