Phalcon-query-language
提供:Dev Guides
Phalcon-クエリ言語
Phalcon Query Language(PHQL)は PhalconQL とも呼ばれ、PhalconがサポートするデータベースシステムのSQLクエリを標準化する高レベルのSQLダイアレクトです。
Cで記述されたパーサーが含まれており、ターゲットRDBMSの構文を変換します。
ここにPhalconクエリ言語の顕著な特徴のいくつかのリストがあります-
- Webアプリケーションのセキュリティのために、バインドされたパラメーターを使用します。
- テーブルはモデルとして扱われ、列はクラス属性として扱われます。
- すべてのデータ操作ステートメントは、発生する可能性のあるデータの損失を防ぐために使用されます。
- SQLインジェクションは、SQLクエリ呼び出しを一度に1つずつ保持することにより防止されます。
PHQLクエリの作成
クエリは、クラス Phalcon \ Mvc \ Model \ Query をインスタンス化することにより作成されます。
例
前の章では、blog tutorialという名前のscaffold Webアプリケーションの動作を見てきました。 名前またはスラッグごとの検索カテゴリが含まれていました。
以下は、searchActionに含まれるコードです。
コントローラで実行(強調表示)されたPHQLクエリは、検索条件に従ってすべての結果を取得します。 条件ごとの検索クエリの結果は、スクリーンショットのように表示されます。
上記のコードが正常に実行されたときに受信した出力を次に示します。
PHQLライフサイクル
高レベル言語であるPHQLは、開発者が要件に応じてさまざまな側面をパーソナライズおよびカスタマイズできるようにします。
以下は、Phalconで実行される各PHQLステートメントのライフサイクルです-
- すべてのPHQLステートメントは解析され、データベースシステムによって実装されたSQLから完全に独立した中間表現(IR)として変換されます。
- IRは、Webアプリケーションで使用されるデータベースシステムに従って、SQLステートメントに変換されます。 生成されたSQLステートメントはモデルに関連付けられます。
- すべてのPHQLステートメントは一度解析され、メモリにキャッシュされます。 同じ文の結果が実行されると、パフォーマンスが向上します。