Laravel 프레임워크의 사용자 정의 템플릿 지시문 요약

jacklove
풀어 주다: 2023-04-02 15:54:02
원래의
1559명이 탐색했습니다.

Blade를 사용하면 명령을 사용자 정의할 수 있습니다. 지시어 방법을 사용하여 명령을 등록할 수 있습니다. 다음 글은 라라벨 프레임워크의 커스텀 템플릿 명령어에 대한 내용을 주로 요약해서 소개하고 있는데, 예제 코드를 통해 아주 자세하게 소개하고 있으니, 필요하신 분들은 참고해보세요

#🎜 🎜#

Introduction

저는 최근 Laravel 프레임워크에서 템플릿을 사용하는 방법 중 하나는 일반적으로 컨트롤러 레이아웃을 사용하는 것입니다. 매우 지저분해 보이는 뷰 템플릿에 복잡한 로직을 작성합니다. 그런 다음 사용자 정의 템플릿 지시문을 사용하면 뷰 로직을 단순화하고 보다 우아한 코드를 작성할 수 있습니다. Laravel Blade는 PHP 및 HTML로 컴파일된 특수 구문 템플릿 엔진입니다. 특별한 구문을 사용하는 지시문은 지저분한 코드를 숨기는 설탕으로 코팅된 함수입니다. 템플릿에는 @foreach/@if/@section/@extends 등과 같은 수많은 내장 명령어가 포함되어 있습니다. 간단한 프로젝트를 만들려면 내장 명령어만으로도 충분하지만, 코드에 반복되는 복잡한 함수를 작성하는 경우 , 템플릿을 사용자 정의합니다 지시어는 보기 구조를 최적화하는 데 도움이 될 수 있습니다.

아래에서는 별로 설명할 것이 없으니, 자세한 소개를 살펴보겠습니다.

간단한 템플릿 지시문 사용자 정의

$expression 매개변수입니다. 선택 사항

사용자 정의 템플릿 지시문의 위치 선언 AppServiceProvider.php

\Blade::directive('directive_name', function ($expression) {
 return $expression;
});
로그인 후 복사

In 이렇게 하면 메소드에 정의된 지침이 성공적으로 로드되고 모든 템플릿에서 사용할 수 있습니다. #

첫 번째 포인트

전달된 여러 매개변수에 직접 액세스할 수 없습니다.

<p>@hello(&#39;World&#39;)</p>
로그인 후 복사

Like array() list() 이것은 함수가 아니라 언어입니다. 구조

두 점
일반적으로 {{}}를 사용할 때 출력을 필터링하는 것을 항상 기억하세요. Blade는 이미 필터링 작업을 수행해 두었습니다. 악의적인 사용자가 사이트에 js 코드를 삽입하는 것을 방지하기 위해 htmlentities()와 동일한 Laravel 자체 함수 e()를 사용할 수 있습니다.

<?php
namespace App\Providers;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
 /**
  * Perform post-registration booting of services.
  *
  * @return void
  */
 public function boot()
 {
  Blade::directive(&#39;hello&#39;, function ($expression) {
   return "<?php echo &#39;Hello &#39; . {$expression}; ?>";
  });
 }
 /**
  * Register bindings in the container.
  *
  * @return void
  */
 public function register()
 {
  //
 }
}
로그인 후 복사

#🎜 🎜#

세 번째 포인트

매회 사용자 정의 템플릿 지시문을 추가하거나 수정하려면 먼저 캐시된 보기 템플릿을 지워야 합니다. 🎜🎜#

Laravel5.5 새로운 기능

#🎜 🎜#

사용자 정의 템플릿 지침을 사용할 때 대부분은 일종의 조건일 뿐입니다. if/else/endif라는 세 가지 독립적인 명령어를 등록하세요. Laravel 5.5는 현재 단순화된 조건부 명령어를 지원합니다. 예를 들어 아래 예에서 템플릿은 admin/else/endadmin
#🎜🎜 #

<p>@greet(&#39;Hi&#39;, &#39;Hammad&#39;)</p>
\Blade::directive(&#39;hello&#39;, function ($expression) {
 list($greet, $name) = explode(&#39;, &#39;, $expression);

 return "<?php echo {$greet} . &#39; &#39; . {$name}; ?>";
});
로그인 후 복사

요약#🎜 🎜#

기사 할 수 있다 관심을 가지세요:

PHP에서 빠른 정렬을 재귀적으로 구현하는 방법의 예

자세한 튜토리얼 PHP에서 git 배포 구현 방법

PHP 구현 이진 검색 알고리즘 예제 분석 및 설명

위 내용은 Laravel 프레임워크의 사용자 정의 템플릿 지시문 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿