개발일기

블레이드 템플릿 1탄 - @section, @yield 본문

프로그래밍 언어/PHP - Laravel

블레이드 템플릿 1탄 - @section, @yield

Flashback 2021. 6. 30. 17:32
728x90
반응형

Laravel Blade Template Engine

 

 

지난번 포스팅은 라라벨 프레임워크 관련하여 포스팅을 다루었다. 요번 포스팅에는 라라벨 프레임워크에서 제공해주는 템플릿 엔진인 블레이드 템플릿에 대해 포스팅하고자 한다. 리액트, 뷰 등의 화면쪽을 담당하는 다른 언어를 사용해도 되지만, 자체적으로 제공되는 템플릿엔진을 사용하는 이유는 화면 코드안에서 php코드를 활용할 수 있다는 장점이 존재하기 때문이다.

 

0. 파일 생성법

기존 php파일은 index.php와 같이 파일명을 지정한 후 생성하게 된다. 하지만 블레이드 템플릿은 index.blade.php라는 형식으로 지정을 하게 된다. 기존 php파일에서 blade라는 문자가 추가된다.

 

1. @section과 @yield

블레이드 템플릿은 레이아웃을 나눌 수 있다. 레이아웃을 나눠 여러개의 컴포넌트로 구성하게 되면 다른 뷰 파일에서 해당 컴포넌트를 재사용할 수 있다. 이러한 레이아웃 기능은 코드의 재사용성을 높혀주는 장점을 가지고 있다.

section과 yield

템플릿 관련 명령어를 작성할 때는 앞에 @를 붙여넣는다.

먼저, 레이아웃을 나눌 때, @section('head')라고 추가하였다. 이것의 의미는 head라는 section을 정의한다는 것을 뜻한다. @endsection으로 section구간을 정해준다.

 

@yield('head')는 사용자가 지정한 section을 상속하는 것을 뜻한다. head라는 section을 불러와 보여주는 것을 뜻한다. 즉 저 코드를 실행하게 되면 @yield('head')로 인해 정의된 내용의 안녕하세요~ 또 만나요 등의 레이아웃 화면이 나타나게 된다.

 

하나의 파일에 section을 정의해 두고 yield를 통해 두고두고 레이아웃을 가져올 수 있다. 추후에 뷰를 보완할 때도 수정하기도 용이하다.

 

2. @extends

@extends명령어는 다른 블레이드 파일의 레이아웃을 상속받을지를 명시하는 역할을 한다.

layout/content.blade.php라는 블레이드 파일이 존재한다고 가정을 해보자. content.blade.php파일의 레이아웃을 가져와 사용할 경우에는 @extends('layout.content') 라고 가져올 레이아웃 구역에 작성하면된다. 특이하게도 보통 디렉터리를 구분할 때는 /를 사용하는데 블레이드 템플릿에서는 마침표로 구분을 한다.

 

3. blade.php 뷰 호출법

블레이드 뷰를 지난번 포스팅에서 말했던대로 Route를 통해 화면을 호출할 수 있다.

route

/home이라는 url로 이동한 경우 index.blade.php를 보여준다는 것을 뜻한다. return view는 블레이드 뷰를 보여주겠다는 것을 뜻하고 view() 안에는 블레이드 뷰의 이름을 작성해주면 된다. 만약 hello.blade.php를 보여주고자 하는 경우에는 

return view('hello');로 작성하면 된다.

 

 

이번 포스팅에는 간단하게 레이아웃을 나누는 section, yield와 화면을 호출하는 법에 대해 다뤄보았다. 다음번 포스팅에는 블레이드 뷰 안에서 php코드를 활용하여 for문, switch문과 변수를 호출하는 법에 대해 포스팅해볼 것이다. 변수호출과 반복문은 블레이드 뷰에서 가장 많이 쓰이기에 중요하게 알아볼 것이다.

728x90
반응형
Comments