私は常に、よりphpish $this->_request->getPost('this')andを使用してきました$this->_request->getQuery('that')(これは、getGetの代わりにgetqueryを使用するとあまり論理的ではありません)。
この2つの中で何が良いですか?(または別のより良い方法がある場合)
の選択について簡単に説明しgetQuery()ます。言葉遣いの選択は、データがどのように得られたかではなく、どのようなデータであるかによって決まります。GET と POST は単なるリクエスト メソッドであり、POST リクエストの場合は「投稿データ」と呼ばれるセクションを含む、あらゆる種類の情報を運びます。GET リクエストにはそのようなブロックはありません。GET リクエストが運ぶ変数データは、URL のクエリ文字列の一部です (? の後の部分)。
したがって、getPost()POST リクエストのポスト データ セクションからgetQuery()データを取得する一方で、GET または POST リクエスト (および他の HTTP リクエスト メソッド) のクエリ文字列からデータを取得します。
(GET リクエストは、DB 行の変更など、副作用を引き起こす可能性のあるものには使用しないでください)
したがって、最初の質問への回答として、メソッドgetPost()とgetQuery()メソッドを使用すると、データ ソースの場所を確認できます (気にしなくてgetParams()も機能しますが、追加のデータが含まれる場合があります)。
このメソッドでphp入力を検証するためのベストプラクティスは何ですか?
入力を検証するのに最適な場所は、最初に使用する場所です。つまりgetParams()、 、getPost()、またはから引っ張るとgetQuery()。このようにして、データは常に必要な場所に正確に保存され、データを渡しても安全であることがわかります。別のコントローラー (またはコントローラー アクション) に渡す場合は、念のために再度確認する必要があることに注意してください。これを行う方法はアプリケーションによって異なりますが、それでも確認する必要があります。