Twig(템플릿 엔진)

Twig (template engine)
잔가지
원저작자아르민 로나허,[1] 파비앙 포텐시에
개발자Symfony SAS
초기 릴리즈2009년 10월 12일(2009-10-12)
안정된 릴리스
3.3.2[2] / 2021년 5월 16일; 14개월 전 (5월 16일)
저장소
기입처PHP
운영 체제크로스 플랫폼
유형템플릿 엔진
면허증.BSD 라이선스
웹 사이트twig.symfony.com

Twig는 PHP 프로그래밍 언어를 위한 템플릿 엔진입니다.그 구문은 진자장고 [3]템플릿에서 유래한다.BSD 라이선스로 라이선스를 취득하여 Fabien Potensier가 관리하는 오픈 소스[4] 제품입니다.초기 버전은 Armin Ronacher에 의해 만들어졌다.Symfony PHP 프레임워크는 버전 [5]2 이후 기본 템플릿 엔진으로 Twig를 번들로 지원합니다.

특징들

  • 복잡한 제어 흐름
  • 자동 이스케이프
  • 템플릿 상속
  • 가변[6] 필터
  • i18n 지원(gettext)
  • 매크로
  • 완전 확장[3][7] 가능

Twig는 다음과 같은 통합 개발 [3]환경에서 지원됩니다.

  • Twig 플러그인을 통한 이클립스
  • Twig 하이라이트/구문 체크모드로 Komodo 및 Komodo 편집
  • Twig 구문 플러그인을 통한 NetBeans (7.1 이전, 7.2 이후 네이티브)
  • PhpStorm (2.1 기준 네이티브)

텍스트 편집자:

  • PHP-twig를 통한 Atom for atom
  • Web-mode.el 경유 Emacs
  • 메모장++++ Twig 형광펜을 통한 메모장++
  • Twig 번들을 통한 Sublime Text
  • Twig 번들을 통한 TextMate
  • Jinja 구문 플러그인 또는 vim-twig 플러그인을 통해 VIM
  • 브래킷 트위그를 통한 브래킷
  • Twig 확장자를 통한 Visual Studio 코드
  • Twig 언어 정의를 통한 GTK Source View
  • Twig 구문 모드를 통한 코드
  • 다른 Twig 구문 모드를 통한 Coda 2
  • Twig 구문 모드를 통한 SubEthaEdit

구문

Twig는 다음 세 가지 종류의 딜리미터를 정의합니다.

  • {{ ... }}변수의 내용 또는 식 평가 결과를 인쇄하려면(예: 상속된 Twig 템플릿,{{ parent() }}).
  • {# ... #}템플릿에 코멘트를 추가합니다.이러한 설명은 렌더링된 페이지에 포함되지 않습니다.
  • {% ... %}for-discriptions 등의 명령어를 실행합니다.
    • {% set foo = 'bar' %},[8] 할당한다.
    • {% if i is defined and i == 1%} ... {% endif %}: 조건.
    • {% for i in 0..10 %} ... {% endfor %}: 루프 내의 카운터.

아포스트로피(')는 이스케이프 문자입니다.

반복 배열을 작성하려면:

{% 세트 myArray = [1, 2] %} 

연관 배열:

{% 세트 myArray = {: '값'} %} 

연산자 우선 순위

연산자의 우선순위는 낮은 우선순위에서 높은 우선순위로 바뀝니다.[3]

교환입니다. 역할.
b-and 비트 AND
b-xor 비트 단위 XOR
b-or 비트 단위 OR
또는 또는
그리고. 그리고.
== 동등합니까?
!= 다른가요?
< > 열등한
> 우월한
>= Supervior 또는 Equal
<=> 열등 또는 동등
안으로
일치하다 대응하다
로부터 시작하다 시작점
으로 끝나다 마감 시간
.. 시퀀스(예:1..5)
+ 플러스
- 더 적은
~ 연결
* 곱셈
/ 나누기
// 아래쪽으로 반올림한 분할
% 모듈로
테스트(예:is defined또는is not empty)
**
필터[6]
[] 어레이 엔트리
. 오브젝트의 속성 또는 메서드(예:country.name)

필터

필터는 표현식 뒤에 배치하면 파이프로 분리된 표현식에 대한 몇 가지 처리를 제공합니다.예를 [6]들어 다음과 같습니다.

  • capitalize: 문자열의 첫 글자를 대문자로 변경합니다.
  • upper: 문자열 전체를 대문자로 변경합니다.
  • first: 배열의 첫 번째 행을 표시합니다.
  • length: 변수 크기를 반환합니다.

특수 변수

  • loop에 현재 루프 정보를 나타냅니다.예를들면loop.index는 이미 발생한 반복 횟수에 해당합니다.
  • 글로벌 변수는 밑줄로 시작합니다.예를 들어 다음과 같습니다.
    • _route(도메인 뒤에 있는 URL 부분)
    • _self(현재 파일 이름)
    페이지 루트에 대해서:{{ path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) }}
  • CGI 환경변수는 다음과 같습니다.{{ app.request.server.get('SERVER_NAME') }}.

아래 예시는 Twig의 몇 가지 기본적인 기능을 보여줍니다.

{% 확장 "base.module" %} {% 블록 내비게이션 %}     < > 아이디='내비게이션'>     {% 위해서 아이템  내비게이션 %}         < >>             < >a href="{{ item.href }}">                 {% 한다면 항목.레벨 == 2 %}&nbsp;&nbsp;{% 엔디프 %}                 {{ item.displays(항목.태스크린) 위쪽의 }}             </a>         </>     {% 끝장 %}     </> {% 엔드 블록 내비게이션 %} 

「 」를 참조해 주세요.

레퍼런스

  1. ^ "mitsuhiko/twig". August 13, 2019 – via GitHub.
  2. ^ "Release 3.3.2". 16 May 2021. Retrieved 22 May 2021.
  3. ^ a b c d "Twig for Template Designers - Documentation - Twig - The flexible, fast, and secure PHP template engine". twig.symfony.com.
  4. ^ "twigphp/Twig". July 1, 2020 – via GitHub.
  5. ^ "Symfony2 Documentation — Documentation". August 5, 2010. Archived from the original on 2010-08-05.
  6. ^ a b c "Filters - Documentation - Twig - The flexible, fast, and secure PHP template engine". twig.symfony.com.
  7. ^ "Extending Twig - Documentation - Twig - The flexible, fast, and secure PHP template engine". twig.symfony.com.
  8. ^ "set - Documentation - Twig - The flexible, fast, and secure PHP template engine". twig.symfony.com.

외부 링크