このサイトは、只今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

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

for Laravel4.1

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

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

こんな感じで

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

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

[code]'Comnect\Smarty\SmartyServiceProvider'[/code]

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

[code]composer update[/code]

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

[code]php artisan config:publish comnect/smarty[/code]

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

[code]<?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',
]
];[/code]

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

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

使用方法

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

[code]return View::make('home');[/code]

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

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

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

use smarty method
[code]View::assign('word', 'hello');[/code]
[code]View::clearAllAssign();[/code]

値も一緒に渡したい場合

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

withでも同じです

[code]return View::make('template')->with('values', $values);[/code]

Artisan

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

cache clear

[code]php artisan comnect:smarty-cacheclear[/code]

Options

[code]--file (-f) specify file[/code] 
[code]--time (-t) clear all of the files that are specified duration time[/code]

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

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

remove compile class

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

[code]php artisan comnect:smarty-clear-compiled[/code]

Options

[code]--file (-f) specify file[/code]

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