0

シンプルなテンプレート統合を備えた php コンテンツ管理システムを作成していますが、適切なテンプレート言語が見つかりません。現在、私は xml テンプレートを使用しており、それらを php DOM で解析しています。テンプレートは次のようになります。

<div class="one_fourth">
    <h4 class="section-header"><span><CMS_STRING type="string" name="title" title="Title" /></span></h4>
    <p><CMS_STRING type="string" name="body" title="Body text" tooltip="" /></p>
    <p><CMS_STRING type="link" name="link" title="Link" /></p>
</div>

PHP では、すべての CMS_STRING タグを DOM getElementsByTagName で解析してから、訪問者のためにデータベースから値を取得するか、管理者のために編集可能な入力を生成します。

xml の 1 つの問題は、たとえば、属性でタグを使用できないことです。

<a href="<CMS_STRING name="url" />"></a>

もう 1 つの問題は、php DOM の引用符のエスケープです。見苦しくて読めません。ローカライズされたタイトルの属性に JSON を入れたいとしましょう:

<CMS_STRING type="string" name="title" title="{&quot;enUS&quot;:&quot;Title&quot;,&quot;enGB&quot;:&quot;Title&quot;}" />

では、ここで他にどのテンプレート言語を使用できますか? また、xml をサポートするためにも必要です (たとえば、CMS_STRING 内部 HTML を取得するなど)。私が見つけたすべてのテンプレート言語は、キャッシング エンジンと、私が必要としない他のすべてのもので事前に作成されています。パーサーを備えた単純な言語が必要なだけで、他のことは自分で処理します。

ありがとう。

4

4 に答える 4

2

PHPテンプレート言語を使用します。あなたの人生はより良く、より幸せに、よりシンプルに、より速くなり、あなたの周りの人々は何世代にもわたってあなたに感謝し、世界中の子犬や子猫は死ぬことが少なくなり、地球温暖化はおそらく少し遅くなるでしょう。

于 2012-07-25T00:34:54.080 に答える
1

人気のテンプレート エンジン :

  • Smarty (時代遅れになる)

  • Latte (主にNetteコミュニティで使用)

  • Twig (主にSymfonyコミュニティで使用)

  • Mustache (このテンプレート エンジンの公式実装は、20 を超えるプログラミング/スクリプト言語で存在します)

私はMustacheを好む傾向があります。これは主に、公式の JS バージョン公式の Ruby バージョン公式の Java バージョンなどがあるためです。これにより、同じテンプレートのフロントエンドとバックエンドを使用できます。これは、最初にレンダリングされるウィジェットに非常に役立ちます。更新時にフォアグラウンドで再レンダリングされます。

于 2014-03-13T21:11:59.833 に答える
1

重複を提案し続けないように、あなたが見て使用できないもののいくつかに名前を付けてください. Smartyを見たことがありますか?それは素晴らしく、あなたのニーズを満たすことができるように聞こえます.

はい、Smarty にはキャッシュがありますが、有効にする必要はありません。得られる唯一の結果ファイルは、テンプレートのコンパイル済みバージョンですが、これは効率のためであり、(パフォーマンスと引き換えに) テンプレート キャッシュを無効にすることができます。

于 2012-07-25T00:29:16.957 に答える
0

TwigSmartyMustache、そしてもちろん PHP 自体など、多数のテンプレート システムが利用可能です。

単純な古い PHP を使用するのではなく、実際のテンプレート システムについて私が気に入っていることの 1 つは、MVC 設計パターンに慣れていない場合でも、VC 部分を実行することを余儀なくされ、その重要性を教えてくれることです。 .. ビジネスロジックを実行できるので、私はほとんど言いますが、一般的にそれは困難であり、あなたを落胆させます。

それらはすべてキャッシュが組み込まれているため、実行に関しては、通常の php スクリプトと同じくらい高速になるはずです。

于 2012-07-25T02:19:13.243 に答える