A4 WORKS Official BLOG

A4 WORKS オフィシャルブログ

PHP

FuelPHPでSmartyを使う

投稿日:2014年10月23日 更新日:

以前のエントリ「FuelPHPを使ってみる」の続きです。
Twigを導入するか迷ったんですが、今回はなじみがあるのでSmartyを採用(導入)します。

最初に。

バージョン1.7.2でのセットアップ方法です。
Smartyを別途ダウンロードして来て fuel/app/venderの配下に置くという情報もありますが、1.7.2では不要の様です。

Smartyのセットアップ(インストール)

APPPATH/composer.json

"require": {
"php": ">=5.3.3",
"composer/installers": "~1.0",
 ・
 ・ (省略)
 ・
"michelf/php-markdown": "1.4.0",
"smarty/smarty": "3.*" // ←これ追加します。
},

omposer.jsonにsmartyの記述を追加し、コマンドラインから以下のコマンドを実行します。

$ php composer.phar update

APPPATH/fuel/app/config/config.php

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

always_loadにpacages,parserを追加します。コメントアウトされているので、コメントインするだけなのですが、pacagesの辺りだけでなく、always_loadの行もコメントアウトされているのにしばらく気づかず「Class ‘View_Smarty’ not found」のエラーから脱出できませんでした。
ここまででインストール周りは終了です。

 テンプレートの拡張子

デフォルトでは拡張子が”.smarty”になります。
ちょっとなじめないので、”.tpl”に変更します。
APPPATH/fuel/pacages/parser/classes/view/smarty.php
42行目あたりを修正します。

//public $extension = 'smarty';//コメントアウト
public $extension = 'tpl';//←tplに変更

テンプレートの追加とviewの変更

テンプレートを追加します。
APPPATH/fuel/app/views/welcomeの配下にテンプレートを配置します。今回はsmarty_index.tplとします。
APPPATH/fuel/app/views/welcome/smarty_index.tpl



    
        
        FuelPHP Framework
    
    
    {$body}
    

APPPATH/fuel/app/classes/welcome.php を更新します。

public function action_index()
{
    //return Response::forge(View::forge('welcome/index'));// コメントアウト
    $data = array("body"=>'Smartyテンプレートテスト');// 追加
    return Response::forge(View_Smarty::forge('welcome/smarty_index', $data));// 追加
}

無事表示されれば完了です!

-PHP
-,

執筆者:

関連記事

Google Developers PageSpeed Insightsを活用してパフォーマンスチューニング

PageSpeed Insightsのトップページに書いてあるんですが「あらゆる端末でウェブページの読み込み時間を短くしましょう。」との事。 読み込みが早い方が良いのはもちろんその通りで、問題はどうや …

file_get_contensでPOSTリクエスト

file_get_contensでファイルパスの代わりにURLを指定することで、手軽かつ簡易に外部のサイトからソースを取得することができ、WebAPIからデータを取得するなどに重宝します。 ただ、PH …

FuelPHPを使ってみる

ゲーム開発プロジェクトのサーバー側(アプリと連携させるAPIとか管理機能とか)をどうするか検討していたんですがFuelPHPが良さそうなので、導入してみました。 http://fuelphp.jp/ …

BitbucketのPull RequestをSlackに通知するWeb API

BitbucketのWebhookと、SlackのWebAPIを組み合わせせる事でcommit通知は送れるのですが、Pull Requestの通知は標準では送信できない様です。 ネットで探すといくつか …

イベントで使えるスマホ対応4択クイズシステムを作ってみた

忘年会等のイベントでつかえる4択クイズシステムをつくってみました。 最初に。 仕事の合間に超短納期でつくった為、いろいろ突っ込みどころのある仕上がりとなっております。予めご了承ください。 動作環境等々 …