Skip to content
これは pieceofcake2/twig-view のドキュメントです。pieceofcake2/cakephp 用の CakePHP 2.x プラグインです。 このフォークについて

TwigView ドキュメント ​

pieceofcake2/twig-view は、Twig テンプレート言語 (Twig 3.x) を CakePHP 2 に統合し、 Twig テンプレートからヘルパー、エレメント、テーマを使えるようにします。

NOTE

CakePHP 5.x では、代わりに公式の cakephp/twig-view パッケージを使ってください。

インストール ​

Composer でプラグインをインストールします。

bash
composer require pieceofcake2/twig-view

このプラグインは cakephp-plugin タイプなので、composer/installers によってプラグインディレクトリにインストールされます。 正しい場所にインストールされるよう、アプリケーションの composer.json で installer-paths を設定してください。

レイアウトinstaller-paths
モダン (config/、src/、templates/、plugins/)"plugins/{$name}/": ["type:cakephp-plugin"]
レガシー (app/Config/、app/Plugin/)"app/Plugin/{$name}/": ["type:cakephp-plugin"]

config/bootstrap.php (レガシーレイアウトでは app/Config/bootstrap.php) でプラグインを読み込みます。

php
CakePlugin::load('TwigView');
// or
CakePlugin::loadAll();

クイックスタート ​

src/Controller/AppController.php (レガシーレイアウトでは app/Controller/AppController.php) で ビュークラスを設定します。

php
class AppController extends Controller
{
    public $viewClass = 'TwigView.Twig';
}

.twig 拡張子でテンプレートを作成します。たとえば templates/Posts/index.twig (レガシーレイアウトでは app/View/Posts/index.twig) です。

twig
{% for post in posts %}
    <h2>{{ post.Post.title }}</h2>
    <p>{{ post.Post.body }}</p>
{% endfor %}

機能 ​

  • CakePHP との統合: ヘルパー、エレメント、テーマをすべて使えます
  • カスタムエクステンション: カスタムのフィルターや関数で Twig を拡張できます
  • テーマのサポート: CakePHP のテーマ付きビューと互換性があります
  • プラグインのサポート: View/ ディレクトリと templates/ ディレクトリの両方で動作します
  • プリコンパイル: 本番環境のパフォーマンスのためにテンプレートをコンパイルできます
  • PSR-4 名前空間: モダンな PHP のアーキテクチャです

その他のドキュメント ​

例 ​

Twig で書いたレイアウトの例:

由来 ​

このパッケージは predominant/TwigView (Packagist では公開されておらず、アップストリームの最終バージョンは v0.6) のメンテナンスされたフォークで、 元の作者は Kjell Bublitz と Graham Weldon です。pieceofcake2 が、 モダンな PHP で動く CakePHP 2 向けにメンテナンスしています。オリジナルからの変更点は CHANGELOG.md で確認できます。

predominant/TwigView 自体は、Kjell Bublitz によるオリジナルの実装である m3nt0r-legacy/cakephp-twig-view をもとにしています。

著作権とライセンスについては LICENSE を参照してください。Cake Software Foundation とは関係ありません。