tanaka's Programming Memo

プログラミングについてのメモ。

Twigの勉強メモ-Introduction-

PHP用のテンプレートエンジンであるTwigについての自分向けの勉強メモです。

Introduction - Documentation - Twig - The flexible, fast, and secure PHP template engine

  • Twigは、PHP用の自由度が高く、高速で、安全なテンプレートエンジン
  • 既存のテンプレートエンジンから移行がしやすい
  • Twigの特徴
    • 高速:テンプレートを効率的なPHPコードにコンパイルするので、オーバーヘッドは通常のPHPより小さい
    • 安全性:Twigには、信頼性の低いテンプレートコードを評価するsandboxモードがある。これにより、ユーザーがテンプレートのデザインを変更できるようなアプリケーションのテンプレート言語として利用できる。
    • 柔軟性:Twigは柔軟なlexer(辞書)とparser(語彙解析器)によって構築されている。これにより、Twigで定義する独自のタグやフィルターによって、Twig自身のDLSを作成することができる。
  • Twigは多くのオープンソースプロジェクトで利用されたり、Slimのようなフレームワークに対応している。

要件

  • PHP 5.2.7以降

インストール方法

composerを推奨

基本的なAPIの使い方

  • テンプレートの配列を渡して Twig_Loader_Array クラスを生成
  • ローダーなどの動作設定を渡して Twig_Environment クラスを生成
  • Twig_Environmentのインスタンスから render() を呼び出す。第1引数にテンプレートのインデックス、第2引数に描画のためのパラメータを渡す
  • テンプレートは通常はファイルシステム上に記録しておく。Twigでもファイルシステムローダーを利用することができる
  • Twig_Loader_Filesystem にテンプレートファイルが入っているフォルダーへのパスを指定
  • Twig_Environment には、第1引数に上記のインスタンス、第2引数にオプションの連想配列を渡す
  • render() の第1引数にはテンプレートのファイル名、第2引数に描画のためのパラメータを連想配列で渡す