2012-01-21 3 views
2

私は、Ajaxのインタラクティブ性にかなり依存しているWebアプリケーションを構築しています.HTMLテンプレートを2つ使用してDRYを維持するという問題を回避したいと思います。PHP + JSのテンプレートエンジンですが、

ここでは、template engine both for JS and PHPという質問が出てきましたが、これは良い回答である、mustacheです。それでZend_View_HelpersやPHPに依存するもののような、私ができないものを思い出しました。

私の質問は、もっと良い解決策がありますか?おそらく、Zend_View(またはテンプレート言語に出力するのと同じようなもの)を使うことができます。これはPHPとそのライブラリの柔軟性を可能にしますが、テンプレート言語のDRYnessです。

それ、または全く私が考えなかった別の解決策。この種のことは何度も前から行われていると思いますので、ベストプラクティス(または悪いもの)があります。

おかげ

答えて

0

私はあなたがthe Twig projectを使用することについてどのようにしようとしているか全くわからないけれども。あなたはテンプレートにオブジェクトを渡すと、そのプロパティとメソッドにアクセスすることができます。fooが配列され、バー場合

  • チェック:

    便宜のfoo.barの場合はPHPの層の上に、次のことを行います有効な要素。

  • fooがオブジェクトの場合は、そのバーが有効なプロパティであることを確認します。
  • fooがオブジェクトである場合、barが有効なメソッドであることを確認します(barがコンストラクタであっても - 代わりに__construct()を使用します)。
  • fooがオブジェクトの場合は、getBarが有効なメソッドであることを確認します。
  • fooがオブジェクトの場合は、isBarが有効なメソッドであることを確認します。
  • それ以外の場合は、null値を返します。一方

FOO [「バーは」]のみPHP配列で動作:fooが配列し、有効な要素のバーがある場合

  • チェック。
  • それ以外の場合は、null値を返します。

JS port of the Twig templating languageもあります。

+0

これは正しい方向への一歩です。私はそれを調べます。私が探しているものは、2段階のテンプレートを持つ能力です。最初は、PHPは、言語に依存しないテンプレートを、Twig、Mustacheなどで出力します。おそらく、それは狂ったアイデアです、多分私が欲しいものではないでしょうか? – Adam

関連する問題