2013.
11.
03
23:46:15
さて、FuelPHPを1.7にバージョンアップしたついでに、
Smartyと連携させてみることにしました。
さてさて、どーやるんだい(--?
ふむふむ(--)
こんな手順でOKみたいですφ(--)
1.Smartyをダウンロードする
「http://www.smarty.net/download」あたりからSmartyの元ファイルをダウンロードします。
解凍したファイル群のうち「libs/」フォルダ以外は捨てちゃって良いですよ
2.SmartyをFuelPHP上に配置する。
「1.」でゲットした「libs/」フォルダを
に置きます。
「Smarty」フォルダは最初は無いので自分で作ってください。
ちなみに置き場所は「APPPATH/vendor/Smarty/」なので、
「APPPATH」を変更している人は環境に合わせて読み替えてくださいね。
3.「Parser」パッケージを読み込むようにする。
を開いて
のように「always_load」の「packages」のところに「parser」を追加します。
4.「composer.json」を編集してあれこれ
ドキュメントルート直下の「composer.json」を開いて以下のように編集します。
編集前(18行目近辺)
編集後
編集が終わったらドキュメントルート直下にてコマンドライン上から
を実行してください。
これで取りあえずの前準備は完了\(--)/
あっ、そうそう。
「4.」の工程を忘れないでくださいね。
composerであれこれが必要になったのはFuelPHP1.6からなので、
古いバージョンの資料ではこの工程について説明されていないと思います。
私は最初この工程を行わないで実行したのですが
とかいうエラーになりました。
まぁ何はともあれ前準備はこれで完了。
あとはviewを作ってControllerから呼び出せば良いですね。
まずはviewφ(--)
■fuel/app/views/test01.smarty
中身は普通にsmartyのテンプレートです。
特に設定をいじっていない場合、ファイルの拡張子は「.smarty」にする必要があるのでご注意ください。
ほんで、このviewを呼び出すControllerがこちらφ(--)
■fuel/app/classes/controller/test01.php
ポイントは「View::forge()」ではなく「View_Smarty::forge()」を使うところですかね。
逆に言うと、そこくらいしか気を付けるところは無さげ。
そして肝心の実行結果はこちらφ(--)
おぉ、無事に連携できました。
Smartyさんがかなりのド定番なせいか、楽に連携できるように考慮されているようです。
こりゃー便利だわ。
と言う訳で、FuelPHP1.7とSmartyの連携、完了\(--)/
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',
),
),
'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"
},
"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": ">=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
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>
<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));
}
}
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の連携、完了\(--)/