PHPテンプレートエンジンQuickyバージョン0.5.x

0.4.x以降の主な変更点:( http://code.google.com/p/quicky/

[〜] {math}はネイティブPHPコードにコンパイルされるようになりました。

[〜]コンパイルエラーについては行番号が表示され、コンパイルエラーは一度に1つずつ表示され、一度に1つは表示されません。エラーが表示されるタグが表示されます。

[+]デバッグコンソールを表示する関数{debug}が追加されました( Quickyがcatの下で最も高度なデバッガーを備えている理由をご覧ください )。



[+]ローカル変数

Quickieがここで読むことができるもの:

habrahabr.ru/blogs/php/45337



Quickyとは何ですか:

Smartyをお持ちで、一般的に彼のアイデアに満足しているが、彼のスピードや数学などのい構造(誰かが急いでいるとしても)は満足していない場合、Quickyが必要です。 ほぼ完全な構文サポート(テンプレートを書き換える必要はありません、まあ、少しだけ)



変更点について詳しく説明します。

デバッグする



以前のQuikiでは、デバッグはSmartよりも低いレベルでしたが、問題が発生して解決されました。

{debug}はもともとスマートから分割されていましたが、すぐにすべての問題を解決しなかったことが明らかになりました。

-最初で最も重要なもの。 エラー出力形式:テンプレートのどの行でエラーが明確になり、タグの先頭の行だけではないことが示されるようになりました

Quicky構文エラー3行目のテンプレートextreme / bugreport.tplの予期しない定数「a」(1行目から開始)

タグ:{a}

-2番目:別れたデバッグが終了しました。 大きなテキストブロックは[...]に折りたたまれ、テキストの長さを示します。ポイントをクリックすると、テキストブロック全体が展開されます。

-3番目:debug_modeモードでは、変数がテンプレートに登録された行とファイルを確認できます(特に古いコードを解析する場合に非常に便利な機能)

-4番目:登録済みオブジェクトの利用可能なメソッドの結論(これが既に実行されているかどうかは不明ですが、実行されていない場合はすぐに実行されます)

UPD:登録済みオブジェクトのデバッグについて詳しく説明します。 一般的な場合のタスクは次のとおりです。テンプレートエンジンに補助オブジェクトを登録し、レイアウト設計者自身がそれを処理できるようにします。 今では可能です。 登録された各オブジェクトには、パブリックプロパティのデバッグ、パラメーター、パラメーターのデフォルト値、メソッド/オブジェクト/プロパティのDOC / **コメントを含むパブリックメソッドのデバッグがあります。

結論:現時点では、Quickyには今まで見た中で最もリッチなデバッガーがあります。 これとDOCの表示、オブジェクトの表示、変数の登録場所の表示。



最適化



{数学の方程式= "x + y" x = $高さy = $幅}

このデザインについてどのように感じているかわかりませんが、パフォーマンスを気にせずに使用できるようになりました。 文字列は式にコンパイルされ、evalで拷問されません

{math Equation = $ eq ....}の場合、torture関数は以前と同じようにregularsおよびevalから呼び出されます。

ここでは、もちろん、構文{?$ newVar = $ a + $ b}を使用する方が便利です。



適合性



これが個別に書かれていないという事実にもかかわらず、クイックとスマート用に書かれたテンプレートとの間の追加の互換性のための手順がとられました。 現時点では、スマート用に作成されたテンプレートの大部分は、変更なしでQuickiによって処理されます。 Quickyを試したことがない人にとっては、これは試してみる機会です。今では、両方のテンプレートエンジンと互換性のあるテンプレートを間違いなく書くことができます。



変数のローカライズ



おそらくこれも重要なポイントです。 QuickieとSmartyの主な違いは、Quickieがすべてのテンプレート/サブパターンに共通の変数スペースを使用することです。 ローカル変数を使用できるようになりました。

簡単に言うと、構文は次のとおりです。

{ local $ i = 0}-テンプレートにローカル変数$ iを入力します

{ global $ i }-グローバル変数$ iへのポインター$ iを返す

{ import $ i }-変数$ iをグローバルからローカルにインポートします。つまり、変数$ iは値global $ iで開始され、ローカル空間に表示されます



{ declare name = 'depart_scopes'}-この行はすべての呼び出しをローカル変数にリダイレクトします

{ declare name = 'depart_scopes' value = 0}-この行はすべての呼び出しをグローバル変数にリダイレクトします



実際には、これは次のような記述ができることを意味します。

 {$ info}-宣言された値を表示します。
  {宣言名= 'depart_scopes'}
     グローバル値をオーバーライドすることを恐れずに変数を使用できるコード 
	  {if isset($ quicky.request.a)} {?$ a = true} {/ if}-変数$ aはローカルです。
	 グローバル変数を使用する必要がある場合は、インポートする必要があります
	  {$情報をインポート}
	  {$ info}-変数$ infoを表示
	  {?$ info = "new"}ローカル変数を消去しました($ info = {$ info})が、グローバルな$ infoはそのままでした
  {宣言名= 'depart_scopes'値= 0}
  {$ info}-前の値を表示します。
 



All Articles