2

PHP の代わりに CodeIgniter ビューで {{headline}} のようなタグを使用したいと考えており、テンプレート パーサーを探しています。CodeIgniter には組み込みのテンプレート パーサーがあります: http://www.ellislab.com/codeigniter/user-guide/libraries/parser.html

問題は、組み込みのパーサーまたは別のパーサーを使用する方が良いかどうかです。ループや if ステートメントなどをサポートしないなど、CI テンプレート パーサーに制限はありますか?

もしそうなら、他にも多くのパーサーがありますが、開発者がしばらくそれらに取り組んでいて、サポートされなくなったときに麻痺状態に陥っているようです。1年以内にサポートされるパーサーを探しています:

バケット http://backstack.ca/projects/bucket/

Comper テンプレート パーサー http://parser.comper.sk/en/

Ocular-Template-Library http://github.com/lonnieezell/Ocular-Template-Library

Phil Sturgeon テンプレート ライブラリ http://philsturgeon.co.uk/code/codeigniter-template

PyroCMS Lex パーサー http://github.com/pyrocms/lex

CodeIgniter のテンプレート ライブラリ http://www.williamsconcepts.com/ci/codeigniter/libraries/template/

最も活発なのは Comper と Lex Parser のようです。Phil Sturgeon Template ライブラリと PyroCMS Lex Parser は同じ開発者であるため、違いは何ですか?

私が探しているのは: - ビューでの PHP と HTML/CSS の分離 - 1 年以内に停止しないようにしっかりとサポート - 単純なタグだけでなく、ループ、if ステートメント、およびその他の関数の使用

誰でもヒントをくれますか?CI フォーラムやその他の場所にある既存の情報は、あまり役に立ちませんでした。

どうもありがとう!

フィリップ

4

1 に答える 1

0

テンプレート エンジンの選択方法

私は、PHP/CMS システムを選択するために同様の演習を行いました。ここでは、意思決定プロセスに引き継がれる可能性があるいくつかのポイントを示します。

  1. 最初にドキュメントを見て、システムがどれだけサポートされているかを把握し、さまざまな機能を評価します。また、必要に応じて助けを得るのに十分な活動が行われているオンライン フォーラムがあるかどうかも確認します。

  2. 次に、インストールを試して、スムーズに進むかどうかを確認します。この段階で問題が発生した場合は、すぐに回答できるオンライン フォーラムやヘルプ デスクがない限り、単純にやめて別のシステムを試すことができます。

  3. 次に、サンプル Web サイト (2 ~ 3 ページ) をセットアップし、必要な機能を試します。CodeIgniter の場合、コンテンツを複数のデータベース テーブルに保存し、SQL クエリからテンプレート システムで使用できる配列構造にデータを取得するのにどれだけの労力がかかるかを評価します。これは通常、Web サイトを開発する際に最も労力を要するステップです。

  4. また、PHP 関数をミックスに簡単に統合できるかどうかもチェックします。たとえば、日付の範囲を決定する特殊な関数を構築する必要があり、これらの日付をテンプレート エンジンに渡す必要がありました。私はそれを行うことができましたが、それには多くの努力が必要でした。テンプレート システムは日付の解析をほとんどサポートしていないため、PHP 関数を使用して作業を行う必要がありました。

概要

最終的には、これらのシステムのいくつかを試して、その感触をつかむ必要があります。それが完了したら、コーディング スタイル、使いやすさ、およびデータ構造に適したものを選択してください。

PS

上記のシステムは使用していませんが、Expression Engine (CodeIgniter を作成した同じグループの CMS) でテンプレート エンジンを使用するのにかなりの時間を費やしました。私のコメントは、Expression Engine を使用してデータベース駆動の Web サイトを実装し、その特定のプラットフォームの制限と癖に対処した経験に基づいています。

于 2013-08-21T00:10:36.723 に答える