laravel 5 템 플 릿 테마 기능 구현

2679 단어 laravel템 플 릿
알다 시 피 laravel 렌 더 링 템 플 릿 은 View:make()를 통 해 이 루어 집 니 다.템 플 릿 파일 경 로 를 명시 적 으로 지정 해 야 합 니 다.

function index()
{
    return View::make('index.index');
}
그러면 우 리 는 템 플 릿 테마 기능 을 스스로 실현 할 수 있 습 니 다.우 리 는 템 플 릿 파일 을 테마 이름 에 해당 하 는 디 렉 터 리 에 넣 으 면 됩 니 다.예 를 들 어 기본 테마 가 default 이면 우 리 는 이렇게 씁 니 다.

function index()
{
    return View::make('default.index.index');
}
사용자 정의 테마 사용자 정의:

function index()
{
    return View::make('custom.index.index');
}
설정 파일 에서 테마 이름 읽 기:

function index()
{
    return View::make(Config::get('app.theme','default').'.index.index');
}
이렇게 하면 기본적으로 템 플 릿 테마 화 기능 을 실현 하지만 문제 가 존재 합 니 다.바로 custom 테 마 는 모든 default 테마의 모든 템 플 릿 을 실현 해 야 합 니 다.그렇지 않 으 면 일부 페이지 템 플 릿 파일 에 오류 가 존재 하지 않 습 니 다.그러면 더욱 최적화 합 니 다.

function index()
{
    $theme = Config::get('app.theme','default');
    $tpl = $theme.'.index.index';
    if (!View::exists($tpl)) {
        $tpl = 'default.index.index';
    }
    return View::make($tpl);
}
템 플 릿 을 렌 더 링 하기 전에 템 플 릿 파일 이 존재 하 는 지 확인 하고 존재 하지 않 으 면 default 테마 에 대응 하 는 템 플 릿 을 사용 합 니 다.
이렇게 많은 줄 의 코드 를 우 리 는 계속 봉인 할 수 있 습 니 다.이때 Response 대상 을 사용 해 야 합 니 다.우 리 는 Response:view()는 View:make()와 같 고 Response 는 하나의 방법 이 있 습 니 다.Response:macro()방법 은 하나의 매크로 를 정의 할 수 있 습 니 다.우 리 는 논 리 를 매크로 에 밀봉 할 수 있 습 니 다.

Response::macro('render',function($path,$data=array()){
    $theme = Config::get('app.theme','default');
    $tpl = $theme.'.'.$path;
    if (!View::exists($tpl)) {
        $tpl = 'default.' . $path;
    }
    return Response::view($tpl,$data);
});
사용:

function index()
{
    $bindings = array(
        'title' => ' '
    );
    return Response::render('index.index',$bindings);
}
템 플 릿 에 들 어 오 는 변 수 는 Response:render 의 두 번 째 매개 변 수 를 통 해 이 루어 져 야 합 니 다.
오늘 의 튜 토리 얼 은 여기까지 하 겠 습 니 다.나중에 우리 가 다시 깊이 분석 해 보 겠 습 니 다.여러분 들 이 좋아 하 시 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기