Quickyテンプレートエンジンの概要:パフォーマンスと柔軟性

Quickyは、PHPで記述されたハイエンドのテンプレートエンジンであり、その柔軟な機能と高いパフォーマンスを特徴としています。 Smartyの構文と機能に基づいています。




内容:

-SmartyからQuickyへの移行

--QuickyがSmartyより優れているのはなぜですか?

QuickyはPHPネイティブよりも高速ですか?

- 力の暗黒面を素早く。

-Quickyコミュニティ。 (今すべてがここにありますhttp://code.google.com/p/quicky/

- 豊富なQuicky機能。

- 結論の代わりに。 個人的な意見。



まず第一に、私は今、1週間、新しいプロジェクトのクイックを運転していると言いたいので、この第一印象を言うことができますが、同時に、バグレポートが作成されました。



Smartで働いていましたが、Quickyを試すにはどうすればよいですか?



Quickieは、スマートな構文を細部まで詳細にサポートするため、移行が非常に簡単になるように作られていますが、はるかにきれいな(より読みやすい)より速いコードを生成します。テンプレートの複雑さに応じて)。



だからあなたが必要とする試してみてください:

1.最新のディストリビューションをコピーします( http://code.google.com/p/quicky/ )。 最新の安定版は常にここにあります。

2. quicky-tpl.net/ru/doc#p2命令

フォームの文字列を置き換えます

require( 'Smarty.class.php');

$ tpl = new Smarty();







require_once 'Quicky.class.php';

$ tpl = new Quicky;

$ tpl-> compiler_prefs ['interpritate_varname_params'] = true;

このパラメーターについては、 http//quicky-tpl.net/en/forum,viewtopic,7/をご覧ください。



ほとんどの場合、これで十分です。 設定パラメータ/既存の機能のリストは、 http//quicky-tpl.net/en/doc#p3.2にあります。



プラグインの読み込みに問題がある場合は、ここで答えを探しています:

http://quicky-tpl.net/en/ideology



原則の主な違い:

すべてのテンプレートには共通のスコープがあります。


また、プロジェクトがQuickと互換性がなくなる可能性がありますが、これは原則的な理由で行われ、偶然ではありません。



QuickyがSmartyより優れているのはなぜですか?



最初 :Quickieの構文ははるかに豊富です。 個人的な好みの順に最も一般的なものをリストします。

-Quickyタグ実行の出力が画面に表示されないようにするには、「?」を先頭に追加します。たとえば、{?$ X = 2 + 2}。

- これで{math ...}を忘れることができます。quiksを使用すると、出力に直接式だけでなく基本式を書くことができます:{$ a + $ b}、{?$ C = sqrt($ b)}

-終了タグで名前を省略できます。つまり、エントリは有効です。

{ブロック} ... {/}({if $ a} ... {/})


-実績のあるブロック{switch}、{while}、{for}などがあります...

-有効な機能の作業の結果の出力(有効な機能は、外部インターフェイスの状態を変更しないものです)、たとえば:{str_repeat( "-="、10)}

-ブロックでの定数と式の使用:{foreach from = array( 'One'、 'Two'、 'Three')key = "i" item = "text"}

-ブロックプロパティにアクセスするためのマジック定数。 例えば:
 {foreach name = my from = array( 'One'、 'Two'、 'Three')key = "i" item = "text"}
     <u> {iteration} </ u>:{$ text} <br />
 {/ foreach} 


-オブジェクトの通常のサポート。つまり、{$ obj-> method1()-> property-> method()}のようなものを呼び出すことができます。

2番目 :Quickieは高速です。

-先ほど言ったように、Quikiにははるかに高度なコンパイラがあり、大量のガベージを生成せず、単独で高速に動作します。 http://quicky-tpl.net/en/ideologyを読む

-first / last / index / index_prev / index_nextのようなブロック変数は、山ほどのコードを形成するテンプレートには保存されませんが、基本的なものから計算されます(つまり、iとサイズから)。

-{capture}はデフォルトでob-functionsを使用せず、コンパイラーでechoではなく変数への書き込みのみを示します。



3番目 :ヘルパー(テンプレート関数)。

ヘルパー/機能。 ヘルパーはテンプレートで作成できます。 テンプレート内で使用可能な関数。

テンプレートに共通する変数のスコープがあります。

例:

 {ヘルパーmyhelper($ a、$ b、$ c)}
 {?$ d = $ b * $ b-4 * $ a * $ c}
 {配列を返す((-$ b + sqrt($ d))/(2 * $ a)、(-$ b-sqrt($ d))/(2 * $ a))}
 {/ヘルパー} 




QuickyはPHPネイティブよりも高速ですか?



信じられないほどですが、真実:クイックはより速くなります。

その秘密は、コンパイラーのステートメントにあります。

コンパイラー文は、テンプレートをコンパイルするときにのみ実行されます;コンパイルされたテンプレートのコードに影響します。 結果は静的になります。



例:

 {_foreach ..} {/}
 {_if ..} {/}
 {_include ..}
日数{$ daySeconds =(_ 60 * 60 * 24)}秒
 {?$ compileTime =(_ $ Quicky.now)}


すべての例で、これらの演算子の結果は最終テンプレートに分類されます。つまり、実際には、式の前の_はコンパイル時にeval()を意味します



Quicky Dark Strength Strength。



Quickは非常に強力でリッチなツールです。不適切に使用すると、プロジェクトを「強制終了」する可能性があります(ただし、常に正しく変換することは可能です)。 あなた自身が同僚に対する責任の程度を選択します-これは信じられないほどの柔軟性の代価です。 保守的な場合、Quikは基本的に新しいレベルの品質でクラシックツールを提供します。 あなたが野心的であれば、Qiwiはあなたにジェダイの剣を与えます、自分で色を選択してください=)。



コミュニティQuicky。



現時点では、kwikiはあまり人気がなく、コミュニティは小さく、公式には次のとおりです。

http://quicky-tpl.net/

私の意見では、キーキの情報照明が不十分であるということは、私が部分的に戦おうとした重大な欠点です。

Quickieの作成者は、開発チームではなく、WPという仮名の下に隠れている一人です。

リリースの速度はあなたのリクエストに正比例します;実際には、著者はバグ(もしあれば)を使って問題を定性的に解決していると確信しました:バグレポートを投稿して速度を修正するだけです。

Quikiプロジェクトは約2年前で、かなり若いですが、アルファテストの段階を長く経てきました。 バージョンには番号が付けられているため、3次は基本的な変更を意味しませんが、2次は重要であり、4次は通常バグ修正です。 現在のバージョン: 0.4.6.1



豊富なQuicky機能。



一般的に、これは別の記事のトピックであり、それらの経験は十分ではないため、簡単な説明に限定します(最終的にはレビュー記事です)

-Blitz構文のサポート

-Quicky_formは、APIとフォーム要素間の相互作用のメカニズムであり、動的フォームをタイプセットできます©

一般に、例を見ればそれらについてもっと学ぶことができます。彼らはdaddy / quicky / _testディストリビューションにあります。



結論の代わりに。 個人的な意見。



お気づきかもしれませんが、私の記事は好意的であり、事実です。 私はMACROを見て、Smartyを長い間使用し、ZFRでプロジェクトを書き、PHPネイティブに住んでいましたが、Quickyが提供するスマートな構文と柔軟性が好きです。 まだ比較的大規模な「クイック」プロジェクトをまだ行っていないという理由だけで、これが最高の最高だとは言えませんが、これは真実であると確信しています。



UPD:

1.「テンプレートエンジンが必要な理由」のような記述をする人のために:リンクをたどってください:

habrahabr.ru/blogs/php/27999よく、またはグーグル、リクエストに応じて「なぜテンプレートが必要なのか!」

2.短所はあなたの態度の自然な表現です。



All Articles