[〜] {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}-前の値を表示します。