[php] 자체 프레임 워크에 blade template engine 도입기 본문
우선 자체 프레임 워크에 어떤 템플릿 엔진을 도입할지를 먼저 고민했다.
구글님에게 물어보니 top7을 추천해주셨다.
처음에는 php와 문법이 동일하다는 plates를 고민했었다. 하지만.. 지저분함이 비슷해 보였고 무엇보다 blade 템플릿엔진이 라라벨 프레임워크에서 사용하고 있다는 점이 가장 큰 매력이었다.
1. 라라벨은 php 프레임워크 중에서 가장 인기가 있고 그로 인해 레퍼런스가 많을 것이라고 생각했다.
현재는 성능때문에 자체 프레임 워크를 사용하지만 언젠가 프레임워크를 바꿔야 한다면 라라벨이 되지 않을까 하는 생각으로..
2. 블레이드는 *.blade.php 파일을 converting(내부에서는 compile이라는 표현을 쓴다.) 해서 html과 php 코드가 혼재된 .php 파일로 변환해서 지정된 cache 디렉토리에 write 한다. 그래서 디버깅이 가능하다. (다른것도 이런지는 잘 모르겠..)
blade를 도입해 보자.
1. library들을 넣어두는 디렉토리 안에 blade용 디렉토리를 하나 만들고 해당 위치에서 composer를 이용해서 설치하면 된다.
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의 문법이나 사용법이 궁금하다면 아래 링크를 확인하면 된다.
좋았던 점
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 |