FuelPHP 1.7でのSmartyのセットアップ

fuelphpにSmartyをインストールする方法 | PHPのQ&A【OKWave】 のような質問が出てますが、再現できないですね。

あと、Smartyをダウンロードしてインストールした上にさらにComposerでインストールするという誤った情報が、まだ浸透しているようですね。

Smartyのインストール

ComposerからSmartyをインストールします。

まず、composer.jsonに設定を追加します。ここでは、バージョンは「3.*」としてSmarty 3.xの最新版を指定しています。

diff --git a/composer.json b/composer.json
index e1b21ea..6d54390 100644
--- a/composer.json
+++ b/composer.json
@@ -18,7 +18,8 @@
     "require": {
         "php": ">=5.3.3",
         "monolog/monolog": "1.5.*",
-       "fuelphp/upload": "2.0.1"
+       "fuelphp/upload": "2.0.1",
+        "smarty/smarty": "3.*"
     },
     "suggest": {
         "mustache/mustache": "Allow Mustache templating with the Parser package",

composerからインストールします。

$ php composer.phar update

config.phpでParserパッケージを有効にします。

diff --git a/fuel/app/config/config.php b/fuel/app/config/config.php
index 5993891..16840eb 100644
--- a/fuel/app/config/config.php
+++ b/fuel/app/config/config.php
@@ -257,7 +257,7 @@ return array(
    /**************************************************************************/
    /* Always Load                                                            */
    /**************************************************************************/
-   // 'always_load'  => array(
+   'always_load'  => array(

        /**
         * These packages are loaded on Fuel's startup.
@@ -270,9 +270,10 @@ return array(
         *     array('auth' => PKGPATH.'auth/')
         * );
         */
-       // 'packages'  => array(
+       'packages'  => array(
        //  //'orm',
-       // ),
+           'parser',
+       ),

        /**
         * These modules are always loaded on Fuel's startup. You can specify them
@@ -308,6 +309,6 @@ return array(
         * If you don't want the lang in a group use null as groupname.
         */
        // 'language'  => array(),
-   // ),
+   ),

 );

テンプレートの指定方法

通常は、公式ドキュメントにあるように、拡張子smartyを付けたファイル名を指定します。

Response::forge(View::forge('index.smarty'));

以下のようにView_Smartyオブジェクトを生成する方法もあります。

 Response::forge(View_Smarty::forge('index'));

関連

Date: 2014/01/22

Tags: fuelphp, smarty