タグ別アーカイブ: Twig

【FuelPHP】Twigでテンプレートのキャッシュファイルを作りたくない場合

投稿日: 2016/07/28

こんばんわー。今深夜1時半ですがめっちゃセミ鳴いています。
メモでーす。

Twigをそのまま使っていると、fuel/app/cache/twigにコンパイル後のテンプレートファイルがキャッシュされますが、何かしらの理由でキャッシュファイルを作成したくない場合、fuel/packages/parser/config/parser.phpを以下の様にします。

View_Twig.environment.cacheの値をfalseにする

<?php
/**
 * Fuel
 *
 * Fuel is a fast, lightweight, community driven PHP5 framework.
 *
 * @package    Fuel
 * @version    1.7
 * @author     Fuel Development Team
 * @license    MIT License
 * @copyright  2010 - 2014 Fuel Development Team
 * @link       http://fuelphp.com

/**
 * NOTICE:
 *
 * If you need to make modifications to the default configuration, copy
 * this file to your app/config folder, and make them in there.
 *
 * This will allow you to upgrade fuel without losing your custom config.
 */

return array(
    // ----- 抜粋 -----
    
    // TWIG ( http://www.twig-project.org/documentation )
    // ------------------------------------------------------------------------
    'View_Twig' => array(
        'auto_encode' => true,
        'views_paths' => array(APPPATH.'views'),
        'delimiters' => array(
            'tag_block'     => array('left' => '{%', 'right' => '%}'),
            'tag_comment'   => array('left' => '{#', 'right' => '#}'),
            'tag_variable'  => array('left' => '{{', 'right' => '}}'),
        ),
        'environment' => array(
            'debug'                => false,
            'charset'              => 'utf-8',
            'base_template_class'  => 'Twig_Template',
            'cache'                => false, // falseにする
            'auto_reload'          => true,
            'strict_variables'     => false,
            'autoescape'           => false,
            'optimizations'        => -1,
        ),
        'extensions' => array(
            'Twig_Fuel_Extension'
        ),
    ),
    
    // ----- 抜粋 -----
);

このようにすればTwigのキャッシュファイルは作成されません。

環境ごとに設定を分けたい場合、fuel/app/config/{環境変数}/parser.phpに上記のView_Twigの部分を書けばOKです。環境変数はFuel::$envの値です。
fuel/packages/parser/config/parser.phpに記載した設定は元に戻しておきます。

以上です。他に方法あったら教えて下さい。

【FuelPHP】Twigにアクセサクラスをsetしたら表示されなくてはまった

投稿日: 2016/07/27

長男(6歳)に「外でポケモンGOをやったら絶対駄目!危ないからね!」と忠告を受けて、大人としてどう対応すべきか悩んでいます。

さて、前回 【FuelPHP】PresenterのViewをTwigにする | Shimabox Blog を書きました。
PresenterのViewをTwigに置き換えるのは簡単に出来たのですが、一つだけ思わぬ落とし穴があったのでメモしておきます。

アクセサクラスをsetしても表示されない

はい。アクセサクラスって何?って話ですが、簡単に言うと__set()__get()だけのクラスです。自分はAPIとかの結果をオブジェクトに格納する時によく使ったりします。
(プロパティをいちいち定義するのめんどくさいし。。)

そういうクラスをアクセサクラスって勝手に言っています。
そのアクセサクラスを定義してTwigにsetした時に、__get()が呼ばれずにTwigがNULLしか返さないという現象に出くわしました。
それを解決というか、自分の認識不足だった部分が埋められたので以下に書き連ねていきます。

サンプルのソースは前回のソースを使います。

アクセサクラスを定義する

こんな感じでアクセサクラスを定義したとします。

続きを読んでみようかな…

【FuelPHP】PresenterのViewをTwigにする

投稿日: 2016/07/26

ポケモンGo全然興味なかったのにあれやばいっすわー。

というわけで、FuelPHPにおいてPresenterのViewをTwigにしました。
その経緯をメモしておきます。

前提条件

  • FuelPHPのバージョンは1.7.2でインストール済みである
  • composerの導入も済んでいる
    • Twigのインストールはcomposerを使います

手順

では手順を書いていきます。

続きを読んでみようかな…