ひらい ぶらり Hi-Library

ぷろぐらみんぐについて。ときどきどうでもいいことについて。

CodeIgniter2.0 でSmarty3.0を使う

CodeIgniter2.0ではSmarty3系は使えない、みたいな記事を書いたんですが、使えました。すいません。
CodeIgniter2.0 でSmarty2.6を使う - ひらい ぶらり Hi-Library

正確には、「CodeIgniterでSmarty2と同じ仕組みでSmarty3は使えない」です。当たり前ですね。

とはいえ、じゃぁSmary3のどこをいじったら良いのか調べるのは面倒くさかった大変なので、ぐぐってみたら一番上に書いてあるじゃないですか。

Using Smarty 3 in Codeigniter 2 (a really tiny CI library) | I Like Kill Nerds

アメージング!

『「開発する」と心の中で思ったならッ!その時スデに(他の人の)行動は終わっているんだッ!』

というわけで、ありがたく使わせていただきました。

とりあえず入れてみる

Vheissu/Ci-Smarty · GitHub
上記リンクからzipファイルをダウンロード。展開。CodeIgniterのapplicationフォルダに上書きする。

設定はいらないよ、との事だったんですが動きませんでした。
とりあえずこれだけでは動かなかった。
githubに書いてある説明をみると

aoolication/config/autoload.php
をいじろうね、とのこと
autoload.phpのlibrariesにparserライブラリを読み込むように変更する

$autoload['libraries'] = array('parser');

で、CodeIginiter標準の$this->load->view()の代わりに、$this->parser->parse()を使ってね、ということなんので、コントローラで使っているメソッドを変更する。

うごいた!

まとめ

ライブラリ作る人ってすごい。すごい人になれるようがんばろう。

追記

cacheディレクトリー内のcache, compledディレクトリーのパーミッションがおかしくなっている場合は適宜修正してくださいね

追記

あ、あとこのライブラリでは

$CI =& get_instance();

は使っていないので、allow_call_time_pass_referenceをいじる必要はないです。
CodeIgniterでは参照渡しするように!って書いてあるけどいいんだろうか?後で調べる。調べる。