Compiling Blade Templates from Strings
It is possible to compile blade templates from strings rather than relying on view files. To do this, you can extend the existing BladeCompiler class and implement a custom method.
Extended BladeCompiler Class
<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>
Usage
You can use the extended compileWiths method to compile blade templates from strings:
<code class="php">$string = '<h2>{{ $name }}</h2>'; $compiled = BladeCompiler::compileWiths($string, array('name' => 'John Doe')); echo $compiled;</code>
위 내용은 Laravel의 문자열에서 블레이드 템플릿을 컴파일하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!