プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.7、Smartyと連携する
さて、FuelPHPを1.7にバージョンアップしたついでに、
Smartyと連携させてみることにしました。

さてさて、どーやるんだい(--?

ふむふむ(--)

こんな手順でOKみたいですφ(--)

1.Smartyをダウンロードする
 「http://www.smarty.net/download」あたりからSmartyの元ファイルをダウンロードします。
 解凍したファイル群のうち「libs/」フォルダ以外は捨てちゃって良いですよ

2.SmartyをFuelPHP上に配置する。
 「1.」でゲットした「libs/」フォルダを

fuel/app/vendor/Smarty/

 に置きます。
 「Smarty」フォルダは最初は無いので自分で作ってください。
 ちなみに置き場所は「APPPATH/vendor/Smarty/」なので、
 「APPPATH」を変更している人は環境に合わせて読み替えてくださいね。

3.「Parser」パッケージを読み込むようにする。
fuel/app/config/config.php

 を開いて

'always_load' => array(
    'packages' => array(
        'orm',
        'parser',
    ),
),

 のように「always_load」の「packages」のところに「parser」を追加します。

4.「composer.json」を編集してあれこれ
 ドキュメントルート直下の「composer.json」を開いて以下のように編集します。

 編集前(18行目近辺)
"require": {
"php": ">=5.3.3",
"monolog/monolog": "1.5.*",
    "fuelphp/upload": "2.0.1"
},

 編集後
"require": {
"php": ">=5.3.3",
"monolog/monolog": "1.5.*",
    "fuelphp/upload": "2.0.1",
    "smarty/smarty": "3.*"

},

 編集が終わったらドキュメントルート直下にてコマンドライン上から

php composer.phar update

 を実行してください。

これで取りあえずの前準備は完了\(--)/

あっ、そうそう。
「4.」の工程を忘れないでくださいね。
composerであれこれが必要になったのはFuelPHP1.6からなので、
古いバージョンの資料ではこの工程について説明されていないと思います。

私は最初この工程を行わないで実行したのですが

ErrorException [ Error ]: Class 'Smarty' not found

PKGPATH/parser/classes/view/smarty.php @ line 57

とかいうエラーになりました。

まぁ何はともあれ前準備はこれで完了。

あとはviewを作ってControllerから呼び出せば良いですね。

まずはviewφ(--)

■fuel/app/views/test01.smarty
<html>
<head>
    <title>smarty test</title>
</head>
<body>
{$msg}

{for $val=1 to 5}
{$val},
{/for}

</body>
</html>

中身は普通にsmartyのテンプレートです。
特に設定をいじっていない場合、ファイルの拡張子は「.smarty」にする必要があるのでご注意ください。

ほんで、このviewを呼び出すControllerがこちらφ(--)

■fuel/app/classes/controller/test01.php
<?php
class Controller_Test01 extends Controller
{

    public function action_index()
    {
        //値
        $data = array(
            'msg' => 'SmartyとFuelPHPの連携テスト'
        );

        //テンプレート呼び出し
        return Response::forge(View_Smarty::forge('test01', $data));
    }

}

ポイントは「View::forge()」ではなく「View_Smarty::forge()」を使うところですかね。
逆に言うと、そこくらいしか気を付けるところは無さげ。

そして肝心の実行結果はこちらφ(--)

SmartyとFuelPHPの連携テスト 1, 2, 3, 4, 5,

おぉ、無事に連携できました。
Smartyさんがかなりのド定番なせいか、楽に連携できるように考慮されているようです。
こりゃー便利だわ。

と言う訳で、FuelPHP1.7とSmartyの連携、完了\(--)/
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事