laravel 5 템 플 릿 테마 기능 구현(계속)

2778 단어 laravel템 플 릿
이전 글 에서 저 는 Response 매크로 를 정의 하 는 방식 으로 템 플 릿 파일 경 로 를 동적 으로 바 꾸 어 주제 기능 을 실현 하 는 것 을 소 개 했 습 니 다.laravel 은 템 플 릿 테마 기능 을 실현 하지만 나중에 이런 방법 에 단점 이 있다 는 것 을 알 게 되 었 습 니 다.템 플 릿 에서@extends 를 사용 하려 면 템 플 릿 경 로 를 명시 적 으로 지정 해 야 합 니 다.이것 은 혼란 을 초래 할 수 있 습 니 다.저 는 생각 을 바 꾸 기로 결 정 했 습 니주제 와 주제 사 이 는 완전히 격 리 되 어야 합 니 다.존재 하지 않 으 면 존재 하지 않 습 니 다.다른 주제 에서 대체 템 플 릿 을 찾 지 마 십시오.
원래 response 매크로 를 정의 하 는 방식 은 실 현 될 수 있 지만,나 는 더욱 규범 화 된 방법 을 사용 하기 로 결정 했다.
laravel 의 View 클래스 에 하나의 방법 이 있 습 니 다.View:addNamespace,이 방법 은 매 뉴 얼'확장 팩 개발'절 에서 언급 되 었 습 니 다.Laravel 매 뉴 얼 의 레이아웃 논리 가 혼 란 스 럽 습 니 다.이 방법 은'보기'장 에 두 어야 한 다 는 것 을 설명 합 니 다.다른 이 야 기 는 하지 않 겠 습 니 다.먼저 이 방법 을 말씀 드 리 겠 습 니 다.
laravel 렌 더 링 보기

View::make('namespace::path');
// View::make('default::index.index');
namespace 를 어떻게 정의 합 니까?바로 이 방법 을 통 해:

View::addNamespace('default',app_path().'/views/default');
똑똑 한 친 구 는 이미 느 꼈 을 것 이다.이 기능 은 우리 가 템 플 릿 의 주제 화 를 실현 하 는 데 도움 을 줄 수 있다.예 를 들 어:

//
View::addNamespace('blue',app_path().'/views/blue');
//
View::addNamespace('red',app_path().'/views/red');
//
View::addNamespace('green',app_path().'/views/green');
다음 호출:

// index.index
View::make('green::index.index');
그러나 우 리 는 뷰::addNamespace 방법 을 통 해 이 몇 가지 주제 의 경로 맵 을 먼저 등록 하고 렌 더 링 할 때 namespace 를 명시 적 으로 지정 해 야 합 니 다.
저 는 불편 합 니 다.View 는 기본 namespace 를 설정 할 수 없 습 니까?이렇게 해서 우 리 는 한 번 만 설정 하면 예 를 들 면:

// __construct
View::setDefaultNamespace('blue',app_path().'/views/blue');
다음:

// View::make('blue::index.index');
View::make('index.index');
더 나 아가 저 희 는 배경 을 통 해 테 마 를 설정 하고 테마 이름 을 데이터베이스 에 쓰 며 프론트 데스크 에서 테 마 를 읽 고 설정 할 수 있 습 니 다.

// ,Option
$theme = Option::getByKey('theme');
View::setDefaultNamespace($theme,app_path().'/views/'.$theme);
이렇게 해서 백 스테이지 전환 주 제 를 실현 했다.
그러나 안 타 깝 게 도 View 는 setDefault Namespace 방법 이 없 기 때문에 저 는 하나의 프로젝트 를 만 들 기로 결 정 했 습 니 다.laravel 을 대상 으로 핵심 라 이브 러 리 확장 을 하기 로 결 정 했 습 니 다.이 기능 은 이미 실현 되 었 습 니 다.제 프로젝트 주 소 를 볼 수 있 습 니 다.src/Keepey/Laravel/View/사용 방법 을 볼 수 있 습 니 다.
자,laravel 템 플 릿 테마 기능 의 실현 에 대해 여기까지 논 의 했 습 니 다.여러분 들 이 좋아 하 시 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기