[php] 자체 프레임 워크에 blade template engine 도입기 본문
우선 자체 프레임 워크에 어떤 템플릿 엔진을 도입할지를 먼저 고민했다.
구글님에게 물어보니 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 |