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

設定 ​

ビュークラス ​

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

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

カスタムのファイル拡張子 ​

デフォルトでは、TwigView は .twig 拡張子を使います。カスタムの拡張子を設定することもできます。

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

注意: $ext の設定にかかわらず .twig ファイルは常に動作し、.ctp ファイルは常に CakePHP のレンダラーを使います。

キャッシュの設定 ​

デフォルトでは、コンパイルされたテンプレートは TMP . 'views' (tmp/views、レガシーレイアウトでは app/tmp/views) にキャッシュされます。キャッシュの場所を変更するには次のようにします。

php
// In config/bootstrap.php (legacy layout: app/Config/bootstrap.php)
Configure::write('TwigView.cache', '/custom/cache/path');

テンプレートのプリコンパイル ​

本番環境では、すべての Twig テンプレートをプリコンパイルします。

bash
bin/cake TwigView.compile all

# legacy layout
app/Console/cake TwigView.compile all

これにより、レンダリングを速くするためのキャッシュが生成されます。

カスタム Twig エクステンション ​

フィルター、関数などのためのカスタム Twig エクステンションを追加します。

php
// In config/bootstrap.php (legacy layout: app/Config/bootstrap.php)
Configure::write('TwigView.extensions', [
    'MyCustomTwigExtension',
    new AnotherTwigExtension(),
]);

エクステンションの例:

php
use Twig\Extension\AbstractExtension;
use Twig\TwigFilter;

class MyCustomTwigExtension extends AbstractExtension
{
    public function getFilters(): array
    {
        return [
            new TwigFilter('custom_upper', function ($string) {
                return strtoupper($string);
            }),
        ];
    }
}

使い方:

twig
{{ 'hello'|custom_upper }}  {# Outputs: HELLO #}

テーマのサポート ​

コントローラーでテーマを有効にします。

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

テーマ付きのテンプレートは、まずビューパスの Themed/MyTheme/ ディレクトリから探されます。

templates/Themed/MyTheme/

(レガシーレイアウトでは app/View/Themed/MyTheme/)。例:

templates/Themed/MyTheme/Layouts/default.twig
templates/Themed/MyTheme/Posts/index.twig

プラグインのサポート ​

TwigView は、モダンとレガシーの両方のプラグイン構成をサポートしています。

  • モダン: プラグインの templates/。例: plugins/MyPlugin/templates/
  • レガシー: プラグインの View/。例: app/Plugin/MyPlugin/View/

テンプレートはまず templates/ から探され、見つからなければ View/ から探されます。

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