慣れてるテンプレートエンジンが一番!
もちろん、ごくごくネイティブに近く?コーディングされているDooPHPの速度は落としてしまうかもしれないが…やっつけてみた。
利便性優位。(なら、DooPHPなんて本末転倒?)
何故か急にDooPHPw
ドキュメントが少なくてイマイチ理解してない。
でも見た感じ、ハードコーディングされてるっぽいし…継承してユーザクラスでオーバーライドしたりっていうのは準備されてないと思う。
# autoloadを利用すれば可能そうでした。フックは用意されてない…かなぁ、beforeRun, afterRunあたりでなんとか…。
common.conf.php
DooViewSmarty.php
DooPHPのレンダリングは $this->render() なので、そのメソッドをやっつけた。
DooView.phpに手を加えないよーに継承して別ファイルにしたけど、DooView.phpにコンストラクタ追記(コンストラクタじゃなくても)して、render()じゃなくview()メソッドでも良いと思うし、好きな方法で(´・ω・`)
てか、DooPHPを使うことが稀だと思うけどね。
あとはいつものとおりSmartyでテンプレートを書く。
もちろん、ごくごくネイティブに近く?コーディングされているDooPHPの速度は落としてしまうかもしれないが…やっつけてみた。
利便性優位。(なら、DooPHPなんて本末転倒?)
何故か急にDooPHPw
ドキュメントが少なくてイマイチ理解してない。
でも見た感じ、ハードコーディングされてるっぽいし…継承してユーザクラスでオーバーライドしたりっていうのは準備されてないと思う。
# autoloadを利用すれば可能そうでした。フックは用意されてない…かなぁ、beforeRun, afterRunあたりでなんとか…。
- Smartyを拾ってきて解凍した後、libsフォルダをsmartyへリネームして /app/protected/library 配下に置く(libraryは作成した。別にリネームしなくてもいいし、置き場所も適宜。どこに置くべ…と思ってとりあえず。)
- /dooframework/view にDooViewSmarty.phpを作成する(ファイル名も適宜)
- /app/protected/config/common.conf.phpにテンプレートエンジン設定を追加
- (゚д゚)ウマー (/app/protected/viewc に書き込み権限を忘れずにー)
common.conf.php
$config['TEMPLATE_ENGINE'] = 'DooViewSmarty';
DooViewSmarty.php
include_once 'DooView.php';
class DooViewSmarty extends DooView {
private $smarty;
public function __construct() {
include_once Doo::conf()->SITE_PATH.'protected/library/smarty/Smarty.class.php';
$this->smarty = new Smarty();
$this->smarty->compile_dir = Doo::conf()->SITE_PATH.'protected/viewc';
$this->smarty->template_dir = Doo::conf()->SITE_PATH.'protected/view';
$this->smarty->assign('SITE_PATH', Doo::conf()->SITE_PATH);
$this->smarty->assign('BASE_PATH', Doo::conf()->BASE_PATH);
}
public function render($file, $data = NULL) {
foreach($data as $key => $val){
$this->smarty->assign($key, $val);
}
echo $this->smarty->fetch($file.'.html');
}
}
DooPHPのレンダリングは $this->render() なので、そのメソッドをやっつけた。
DooView.phpに手を加えないよーに継承して別ファイルにしたけど、DooView.phpにコンストラクタ追記(コンストラクタじゃなくても)して、render()じゃなくview()メソッドでも良いと思うし、好きな方法で(´・ω・`)
てか、DooPHPを使うことが稀だと思うけどね。
あとはいつものとおりSmartyでテンプレートを書く。