0

そのため、テンプレートエンジンとしてCodeigniterのテンプレートパーサークラスを使用しています。それはかなり基本的ですが、私が必要なことをするはずです。それを持っている私の唯一の牛肉は、それが未使用の疑似変数を表示することです。これは私にとって大きな問題です!

コントローラ

public function index()
{
   $this->parser->parse('templates/home', array('foo'=>'bar'));
}

意見

{foo}
{hello}

出力

バー{こんにちは}

未使用の疑似変数が表示されないようにする方法を知っている人はいますか?


CodeIgniter 2.1.2


ちなみに、私は代替案を受け入れています。古くなっていないか、適切なドキュメントがないCodeIgniter2用の堅牢なテンプレートエンジンを見つけることができませんでした。

4

3 に答える 3

1

実際、私自身の調査では、CodeIgniter用の堅牢なテンプレートエンジンも見つかりませんでした。使用時には非常に重要な役割を果たしますので、失敗すると一生懸命失敗します。サードパーティのソリューションはバグの影響を受けやすく、開発者によって常に放棄されるリスクがあります。ネイティブ実装には、私が必要とする必要な機能がありませんでした。これらのリスクと機能の欠如は、私の要件には受け入れられませんでした。多分あなたも。

私はあなたにこのアドバイスを提供します:

PHPを使用するだけです。

それ自体が実質的にテンプレートエンジンです。電源を入れshort_open_tagsて、php.iniPHPの短いエコー構文を使用します。ビューを作成するときに2、3の余分な文字を持ち運びますが、必要に応じて実際のPHP変数/配列をすぐに使用できるという大きなメリットがあります。

テンプレートコード:

{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}

PHPに相当するもの:

<? foreach($blog_entries as $b):?>
<h5><?= $b['title'];?></h5>
<p><?= $b['body']?></p>
<? endforeach; ?>

これについては継続的な議論がありますが、私の意見では、テンプレートエンジンはセットアップを複雑にするだけです。

于 2012-09-16T17:49:06.820 に答える
0

テンプレートパーサークラスについてはわかりませんが、代わりに次のように言うことができます

<?php echo (isset($foo)) ? $foo : '' ; ?>
于 2012-09-16T16:49:48.357 に答える
0

結局、Phil SturgeonのCodeIgniter-テンプレートテンプレートライブラリを使用しました。これは、皮肉なことに、CodeIgniterに組み込まれているテンプレートライブラリよりも信じられないほど優れているわけではありません。しかし、それは私の当面の問題を解決しました。

http://getsparks.org/packages/template/show

于 2012-11-17T04:31:05.137 に答える