Twig ==== ## 개요 Twig는 [[language:php]]에서 사용하기 위한 모던 템플릿 엔진이며, Symfony 프로젝트에서 사용하기 위해 개발되었다. 여타의 템플릿 엔진과 비슷하게 간결함과 쉬운 난이도, 기능성, 속도 등에 초점을 두었다. ## 문법 Twig는 `{% ... %}` 및 `%%{{ ... }}%%` 형식으로 기본적인 문법을 정의한다. 주석은 `{# ... #}`을 사용한다. ## 변수 Twig에서 모든 변수는 객체로 취급되며, 모든 객체는 그 속성을 갖는다. ``` {# 변수 출력 #} {{ tech:객체명.속성 }} {# 변수 설정 #} {% set a = 'a' %} {% set b = [1, 2] %} {% set c = {'d': 'e'} %} ``` Twig는 다음 세 종류의 전역 변수를 갖는다. * `_self`: 현재 템플릿명 * `_context`: 현재 context명 * `_charset`: 현재 charset명 ### 필터 필터는 주어진 변수를 가공하는 역할을 하며, 파이프 기호 또는 `apply` 태그로 적용한다. ``` {# name에서 HTML 태그 제거 후 대문자화 #} {{ tech:name|striptags|upper }} {% apply upper %} This text becomes uppercase {% endapply %} ``` #### 함수 / 컨트롤 ``` {% for i in range(low=1, high=10, step=2) %} {{ i }}, {% endfor %} ``` ``` {% if users|length > 0 %} {% endif %} ``` ### inclusion include 함수를 사용해 다른 파일의 내용을 삽입할 수 있다. ``` {% for box in boxes %} {{ include('render_box.html') }} {% endfor %} ```