Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengumpul Templat Blade dari Strings dalam Laravel?

Bagaimana untuk Mengumpul Templat Blade dari Strings dalam Laravel?

Linda Hamilton
Linda Hamiltonasal
2024-10-22 13:07:031041semak imbas

How to Compile Blade Templates from Strings in Laravel?

Menyusun Templat Bilah daripada Rentetan

Ia adalah mungkin untuk menyusun templat bilah daripada rentetan daripada bergantung pada fail paparan. Untuk melakukan ini, anda boleh melanjutkan kelas BladeCompiler sedia ada dan melaksanakan kaedah tersuai.

Kelas Extended BladeCompiler

<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>

Penggunaan

Anda boleh menggunakan kaedah compileWiths lanjutan untuk menyusun templat bilah daripada rentetan:

<code class="php">$string = '<h2>{{ $name }}</h2>';
$compiled = BladeCompiler::compileWiths($string, array('name' => 'John Doe'));
echo $compiled;</code>

Atas ialah kandungan terperinci Bagaimana untuk Mengumpul Templat Blade dari Strings dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn