このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

web帳

記事詳細

2014.11.20

Laravel4でもSmartyを使用したい!

どもです。

Laravel4でもSmartyを使用したい使用したい使用….。。。

そう。Laravelはデフォルトで bladeテンプレートが備わっているのですが、別のテンプレートエンジンが使いたい。

といったわがままを言って見たい時期だったりもする訳ですよ。

使い慣れたテンプレートエンジンが良かったりしますよねー。

できるのかなー。と思っていたら、

.

..

..

できますねー!! ><

こちらとか

http://packalyst.com/packages/package/comnect/smarty

http://blog.comnect.jp.net/blog/76

こちらを参考です。

インストール

for Laravel4.2

"require": {
    "comnect/smarty": "2.*"
},

for Laravel4.1

"require": {
    "comnect/smarty": "1.*"
},

とありますので、御使いのバージョンに合わせcomposer.jsonに追加します。

こんな感じで

"require": { 
    "laravel/framework": "4.1.*",
    "comnect/smarty": "1.0" 
},

そして、Laravelのapp/config/app.phpのprovidersに以下を追加して

'Comnect\Smarty\SmartyServiceProvider'

コマンドラインでcomposer updateを入力、インストールを行います。

composer update

インストールが完了したら、artisanコマンドでコンフィグをパブリッシュ。

php artisan config:publish comnect/smarty

実行すると app/conig/packagesの下にcomnect/smarty/config.php といった、smartyのコンフィグと同様のコンフィグファイルが作成されます。

<?php
// smarty configure
return [
    // smarty file extension
    'extension' => 'tpl',
    //
    'debugging' => false,
    // use cache
    'caching' => false,
    //
    'cache_lifetime' => 120,
    //
    'compile_check' => false,
    // delimiters
    // default "{$smarty}"
    'left_delimiter' => '{',
    'right_delimiter' => '}',
    // path info
    'template_path' => app_path() . '/views',
    'cache_path' => app_path() . '/storage/smarty/cache',
    'compile_path' => app_path() . '/storage/smarty/compile',
    'plugins_paths' => [
    app_path() . '/views/smarty/plugins',
    ]
];

デフォルトではapp/storageの下にcacheとcompileが出力されますので、app/storageに必ず実行権限を与えてください。

ひとまずこれで使用可能になりました。

使用方法

特に変更しなくても使用できます。

return View::make('home');

views配下にsmartyファイルがあればそれをテンプレートと使用し、なければ通常通りbladeテンプレートかphpファイルを使用するようになっております。

なので、bladeテンプレートもそのまま併用も可能となっております。優秀!

smartyのメソッドも利用可能です。

use smarty method

View::assign('word', 'hello');
View::clearAllAssign();

値も一緒に渡したい場合

return View::make('template', ['values' => $values]);

withでも同じです

return View::make('template')->with('values', $values);

Artisan

artisanコマンドでキャッシュをクリアしたい場合は

cache clear
php artisan comnect:smarty-cacheclear

Options

--file (-f) specify file

 

--time (-t) clear all of the files that are specified duration time

–file (-f) specify file::削除したいファイルを指定

–time (-t) clear all of the files that are specified duration time::cacheの経過時間を指定して削除

remove compile class

また、コンパイルファイルの削除も行えます。

php artisan comnect:smarty-clear-compiled

Options

--file (-f) specify file

–file (-f) specify file:削除したいファイルを指定

その他、smarty modifier, sumarty functionなどすべて使用可能となっております。ただし、配列で記述する場合はショートシンタックスのみ対応のようです。

いやー助かりますねー。よろしければー。ではでは。

  • RSSを登録する

  • follow us in feedly

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、港区六本木で活動中。

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。