이 글에서는 라라벨 학습 튜토리얼의 뷰 모듈에 대한 관련 정보를 주로 소개합니다. 뷰 모듈은 샘플 코드를 통해 아주 자세하게 소개되어 있어 공부나 업무에 필요한 모든 사람이 따라할 수 있는 학습 가치가 있습니다. 에디터와 함께 배워볼까요?
머리말
이 글은 주로 Laravel의 View 모듈에 대한 관련 정보를 소개하고 있으며 참고 및 학습을 위해 공유합니다. 아래에서는 자세한 소개를 살펴보겠습니다. .
이 글은 Laravel 5.4 버전의 라우팅 모듈 코드를 분석하고 작성한 내용을 바탕으로 작성되었습니다.
파일 구조
View 모듈의 파일 형식과 기능은 아래 그림과 같습니다.
시각적 프리젠테이션 중 대략적인 프로세스:
1. view() 메소드를 호출하여 뷰 프리젠테이션을 시작합니다.
2 먼저 뷰 파일을 찾습니다. 파일 이름에 네임스페이스(즉, :: 앞 부분)가 있으면 해당 네임스페이스에 해당하는 등록된 경로 배열을 사용하고, 그렇지 않으면 전역 경로 배열(IlluminateViewFileViewFinder 클래스의 경로 변수)을 사용하세요.
ob_start(); include $__path; ob_get_clean();
이 엔진은 캐싱 처리를 적극적으로 수행합니다. 캐시 파일이 만료되지 않은 경우 캐시 파일이 직접 호출되고, 그렇지 않으면 다시 컴파일되어 캐시 파일이 sha1(저장소/프레임워크에 있음)을 통해 생성됩니다. /views 디렉터리);
Blade 엔진 컴파일
Blade 엔진은 수많은 정기적인 일치 및 교체를 통해 파일을 컴파일합니다.
protected $compilers = [ 'Comments', // 注释部分 'Extensions', // 扩展部分 'Statements', // 语句块 (@ 开头的指令) 'Echos', // 输出 ]; protected function parseToken($token) { list($id, $content) = $token; if ($id == T_INLINE_HTML) { foreach ($this->compilers as $type) { $content = $this->{"compile{$type}"}($content); } } }
Comment 부분
핵심 코드 다음과 같이 주석 기호 "{{-- --}}"로 묶인 코드를 빈 문자열로 바꿉니다. 확장 메소드를 사용하여 템플릿 콘텐츠의 사용자 정의 텍스트 일치 및 교체를 수행합니다.
핵심 코드는 다음과 같이 IlluminateViewBladeCompiler 파일에 있습니다.
preg_replace("/{{--(.*?)--}}/s", '', $value);
명령 교체
이 부분은 다음과 같은 프레임워크를 교체하는 것입니다. @if that does it 제공 지침 및 지시문 메서드를 통해 등록된 지침의 텍스트 대체
명령에는 @can, @cannot, @elsecan, @elsecannot, @endcan, @endcannot
ConcernsCompilesComponents: 구성 요소 및 슬롯과 관련됨
지침에는 다음이 포함됩니다: @comComponent, @endcomComponent, @slot, @endslot
ConcernsCompilesConditionals: 판단 진술 관련
지침에는 @if, @unless, @else, @elseif, @endif, @endunless, @isset, @endisset, @hassection
지침에는 다음이 포함됩니다: @each, @include, @includeif, @includewhen
명령에는 다음이 포함됩니다: @inject
지침에는 @extends, @section, @parent, @yield, @show, @append, @overwrite, @stop, @endsection
지침에는 다음이 포함됩니다: @forelse, @empty, @endforelse, @endempty, @for, @foreach, @break, @continue, @endfor, @endforeach, @while, @endwhile
명령에는 다음이 포함됩니다: @php, @endphp, @unset
명령에는 @stack, @push, @endpush, @prepend, @endprepend
지침은 다음과 같습니다: @lang, @endlang, @choice
Echo 교체
{{ }} 일반 출력, 삼항 연산자 대체 지원
{{{ }}} 이스케이프 문자 출력, 삼항 연산자 대체 지원: {{ $a ?: " 기본값" }} (또는 {{$a 또는 "기본값"}})을 {{ isset($a) ? $a : "기본값"}}
관련 권장사항:
Laravel 5 프레임워크의 모델과 컨트롤러 및 뷰의 기본 프로세스에 대해 알아보기
위 내용은 Laravel View 모듈 학습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!