문자열에서 블레이드 템플릿 컴파일
인기 있는 웹 애플리케이션 프레임워크인 Laravel에서는 Blade가 기본 템플릿 엔진입니다. 일반적으로 블레이드 보기는 보기 파일에 저장됩니다. 그러나 파일을 보는 대신 문자열에서 블레이드 템플릿을 컴파일할 가능성에 대한 의문이 제기되었습니다.
제공된 코드는 문자열에서 블레이드 템플릿을 컴파일하려는 시도를 보여줍니다.
<code class="php">$string = '<h2>{{ $name }}</h2>'; echo Blade::compile($string, array('name' => 'John Doe'));</code>
To BladeCompiler의 기능을 확장하기 위해 사용자 정의 BladeCompiler 클래스가 생성되었습니다. 새로운 compileWiths() 메서드는 문자열과 인수 배열을 입력으로 사용합니다. 문자열을 컴파일하고, 전달된 인수를 추출하고, 예외 처리기 내에서 컴파일된 코드를 평가합니다.
아래 업데이트된 코드는 구현을 보여줍니다.
<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); // We'll include the view contents for parsing within a catcher // so we can avoid any WSOD errors. If an exception occurs we // will throw it out to the exception handler. try { eval('?>'.$generated); } // If we caught an exception, we'll silently flush the output // buffer so that no partially rendered views get thrown out // to the client and confuse the user with junk. catch (\Exception $e) { ob_get_clean(); throw $e; } $content = ob_get_clean(); return $content; } }</code>
위 내용은 Laravel의 문자열에서 블레이드 템플릿을 어떻게 컴파일할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!