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 패키지는 일부 공통 루틴을 최적화하기 위해이를 자동으로 활용합니다.
나뭇 가지 란 무엇입니까?
나뭇 가지는 최적화 된 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 %}
소개
Smarty , Django 또는 Jinja 와 같은 다른 텍스트 기반 템플릿 언어에 대한 노출이있는 경우 집에서 Twig를 사용 하여 바로 느껴야합니다. PHP의 원칙을 고수하고 템플릿 환경에 유용한 기능을 추가함으로써 디자이너와 개발자가 친숙 합니다.
주요 기능은 다음과 같습니다.
- Fast : Twig은 템플릿을 일반 최적화 된 PHP 코드로 컴파일합니다. 일반적인 PHP 코드와 비교할 때 오버 헤드가 매우 최소한으로 줄어 들었습니다.
- 보안 : 나뭇 가지 에는 신뢰할 수없는 템플릿 코드를 평가하는 샌드 박스 모드 가 있습니다. 이를 통해 Twig는 사용자가 템플릿 디자인을 수정할 수있는 응용 프로그램의 템플릿 언어로 사용할 수 있습니다.
- 유연성 : 나뭇 가지는 유연한 렉서 와 파서를 사용 합니다. 이를 통해 개발자는 고유 한 사용자 정의 태그 및 필터 를 정의하고 자체 DSL을 작성할 수 있습니다.
Twig는 Symfony , Drupal , eZPublish 와 같은 많은 오픈 소스 프로젝트에서 사용되며 Slim , Yii , Laravel , Codeigniter , silex 및 Kohana 와 같은 많은 프레임 워크에서 지원됩니다.
설치
Twig를 설치할 때 권장되는 방법은 Composer를 사용하는 것입니다 .
PHP 5.x 사용자
composer require "twig/twig:~1.0"
PHP 7.x 사용자
composer require "twig/twig:~2.0"