[php] 자체 프레임 워크에 blade template engine 도입기 본문

프로그래밍

[php] 자체 프레임 워크에 blade template engine 도입기

디유비 2020. 10. 11. 15:57

우선 자체 프레임 워크에 어떤 템플릿 엔진을 도입할지를 먼저 고민했다.

 

구글님에게 물어보니  top7을 추천해주셨다.

Top 7: Best Open Source PHP Template Engines

See our review from 7 of the Best Open Source PHP based template engines.

ourcodeworld.com

처음에는 php와 문법이 동일하다는 plates를 고민했었다. 하지만.. 지저분함이 비슷해 보였고 무엇보다 blade 템플릿엔진이 라라벨 프레임워크에서 사용하고 있다는 점이 가장 큰 매력이었다.

 

1. 라라벨은 php 프레임워크 중에서 가장 인기가 있고 그로 인해 레퍼런스가 많을 것이라고 생각했다.

 

현재는 성능때문에 자체 프레임 워크를 사용하지만 언젠가 프레임워크를 바꿔야 한다면 라라벨이 되지 않을까 하는 생각으로..

 

2. 블레이드는 *.blade.php 파일을 converting(내부에서는 compile이라는 표현을 쓴다.) 해서 html과  php 코드가 혼재된 .php 파일로 변환해서 지정된 cache 디렉토리에 write 한다. 그래서 디버깅이 가능하다. (다른것도 이런지는 잘 모르겠..)


blade를 도입해 보자.

 

1. library들을 넣어두는 디렉토리 안에 blade용 디렉토리를 하나 만들고 해당 위치에서 composer를 이용해서 설치하면 된다.

jenssegers/blade

🔪 A standalone version of Laravel's Blade templating engine for use outside of Laravel. - jenssegers/blade

github.com

Install

composer require jenssegers/blade

composer를 이용해서 설치하면 끝이다.

 

이제 blade를 사용할 준비가 끝났다.

 

사용법

 

 

기존 템플릿 파일들을 *.blade.php로 이식해주면 끝이다. make('homepage')라고 된 것이 homepate.blade.php로 된 파일명이다.

뒤에 붙는 extension(.blade.php 등등)은 정의되어 있는데 바꾸고 싶다면 찾아서 바꾸면 된다.

 

나는 아래와 같이 작성했다.

$blade = new Blade($viewDirectoryPath, $cacheDirectoryPath);
echo $blade->render($viewFileName, $parameters);

 

blade의 문법이나 사용법이 궁금하다면 아래 링크를 확인하면 된다.

라라벨 8.x - 블레이드 템플릿

라라벨 한글 메뉴얼 8.x - 블레이드 템플릿

laravel.kr

좋았던 점

1. html을 모두 작성할 필요가 없다. 반복문을 사용해서 html 태그를 그릴 수 있다.

2. layout을 정해놓고 section 별로 모듈화 시킬 수 있다.

3. view에서 인라인 php를 거의 안 쓸 수 있다. (@php @endphp를 써야만 하는 경우도 있음..)

'프로그래밍' 카테고리의 다른 글

[tmux] 간단 사용법  (0) 2021.01.20
[docker] command-line  (0) 2020.12.10
[php] 유닛 테스트 도입기  (0) 2020.12.09
Comments