twig나뭇 가지 시작하기


비고

이 절에서는 나뭇 가지가 무엇인지, 그리고 왜 개발자가 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.

또한 나뭇 가지 안에있는 큰 주제를 언급하고 관련 주제에 링크해야합니다. 나뭇 가지에 대한 문서가 새롭기 때문에 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

기본 API 사용법

또한 소스 코드를 다운로드하여 프로젝트 디렉토리에 배치하여 설치할 수도 있습니다. 그러나 작곡가를 사용하면 많은 이점이 있습니다.

require '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('/path/to/templates');

$options = array(
    'strict_variables' => false,
    'debug' => false,
    'cache'=> false
);

$twig = new Twig_Environment($loader, $options);
 

새로운 Twig_Environment 인스턴스를 만들 때 옵션 배열을 생성자의 두 번째 인수로 전달할 수 있습니다. 다음은 사용 가능한 옵션 목록입니다.

  • debug ( boolean , 디폴트는 false )

true로 설정하면 생성 된 템플릿에는 생성 된 노드를 표시하는 데 사용할 수있는 __toString() 메서드가 있습니다.

  • charset ( 문자열 , 기본 utf-8 )

템플릿에 의해 사용되는 캐릭터 세트입니다.

  • base_template_class ( 문자열 , 기본값은 Twig_Template )

생성 된 템플릿에 사용할 기본 템플릿 클래스입니다.

  • cache ( string 또는 false , 디폴트는 false )

컴파일 된 템플릿을 저장할 절대 경로 또는 캐싱을 사용하지 않으려면 false (기본값)입니다.

  • auto_reload ( boolean , 기본값 : debug 에서 상속)

Twig로 개발할 때 소스 코드가 변경 될 때마다 템플릿을 다시 컴파일하는 것이 유용합니다. auto_reload 옵션에 값을 제공하지 않으면 디버그 값에 따라 자동으로 결정됩니다.

  • strict_variables ( boolean , 디폴트는 false )

false로 설정하면, Twig는 유효하지 않은 변수 (존재하지 않는 변수 및 / 또는 속성 / 메소드)를 자동으로 무시하고 null 값으로 대체합니다. true로 설정하면 Twig가 예외를 대신 throw합니다.

  • autoescape ( string 또는 boolean , 디폴트는 true )

true로 설정하면 모든 템플릿에 대해 HTML 자동 이스케이프가 기본적으로 활성화됩니다.

Twig 1.8에서는 (html, js, false를 사용하지 않도록 설정하는) 이스케이프 전략을 설정할 수 있습니다.

Twig 1.9부터 (css, url, html_attr 또는 템플리트 "filename"을 사용하는 PHP 콜백을 사용하도록 이스케이프 전략을 설정하고 이스케이프 전략을 사용해야 함 - 콜백은 피할 함수 이름이 될 수 없음 내장 된 탈출 전략과의 충돌).

Twig 1.17부터 파일 이름 이스케이프 전략은 템플릿 파일 이름 확장자를 기반으로 템플릿에 사용할 이스케이프 전략을 결정합니다 (이 전략은 컴파일 타임에 자동 이스케이프가 수행 될 때 런타임에 오버 헤드가 발생하지 않습니다).

  • 최적화 ( 정수 , 기본값 -1 )

적용 할 최적화를 나타내는 플래그입니다.
set to -1 to enabled all optimalizations
set o 0 to disable all optimalitazations

공식 나뭇 가지 설치 가이드

Twig PHP 확장 (C로 작성)을 컴파일하고 설치할 수 있으며, PHP 패키지는 일부 공통 루틴을 최적화하기 위해이를 자동으로 활용합니다.

소개

Smarty , Django 또는 Jinja 와 같은 다른 텍스트 기반 템플릿 언어에 대한 노출이있는 경우 집에서 Twig를 사용 하여 바로 느껴야합니다. PHP의 원칙을 고수하고 템플릿 환경에 유용한 기능을 추가함으로써 디자이너와 개발자가 친숙 합니다.

주요 기능은 다음과 같습니다.

  • Fast : Twig은 템플릿을 일반 최적화 된 PHP 코드로 컴파일합니다. 일반적인 PHP 코드와 비교할 때 오버 헤드가 매우 최소한으로 줄어 들었습니다.
  • 보안 : 나뭇 가지 에는 신뢰할 수없는 템플릿 코드를 평가하는 샌드 박스 모드 가 있습니다. 이를 통해 Twig는 사용자가 템플릿 디자인을 수정할 수있는 응용 프로그램의 템플릿 언어로 사용할 수 있습니다.
  • 유연성 : 나뭇 가지는 유연한 렉서파서를 사용 합니다. 이를 통해 개발자는 고유 한 사용자 정의 태그필터 를 정의하고 자체 DSL을 작성할 수 있습니다.

Twig는 Symfony , Drupal , eZPublish 와 같은 많은 오픈 소스 프로젝트에서 사용되며 Slim , Yii , Laravel , Codeigniter , silexKohana 와 같은 많은 프레임 워크에서 지원됩니다.

설치

Twig를 설치할 때 권장되는 방법은 Composer를 사용하는 것입니다 .

PHP 5.x 사용자

composer require "twig/twig:~1.0"
 

PHP 7.x 사용자

composer require "twig/twig:~2.0"
 

나뭇 가지 란 무엇입니까?

나뭇 가지는 최적화 된 PHP 코드로 컴파일되는 템플릿 언어입니다. 주로 HTML 출력에 사용되지만 다른 텍스트 기반 형식을 출력하는 데에도 사용할 수 있습니다. 이것은 모든 PHP 프로젝트에 쉽게 통합 될 수있는 독립형 컴포넌트입니다.

그것은 많은 우수한 기능을 제공합니다 :

  • HTML 자동 완성 (XSS 예방에 도움이 됨)
  • 템플리트를 염두에두고 설계된 구문 (장고 템플릿 기반)
  • 템플릿 상속
  • 매크로

공식 간판 템플릿 문서

나뭇 가지의 구문 예 :

{% extends "base.html" %}

{% block sidebar %}
  {{ parent() }}
  <span>Sidebar content specific to this page</span>
{% endblock sidebar %}

{% block body %}
  <p>Select an item:</p>
  <ul>
    {% for item in list %}
      <li><a href="/items/{{ item.id }}">{{ item.name }}</a>
    {% else %}
      <li>No items yet.
    {% endfor %}
  </ul>
{% endblock body %}