ヘリリースでは以下のセキュリティmethod_exists()
質問
皆様にお伝えしたくて書き込み、"すべてはキャッチする方法"に私のコントローラーが)。それは"ajax':P
ムービーに登場する、現在のように見え
public function ajax($method = null) {
if ( ! $method OR ! request::is_ajax()) {
return false;
}
if (method_exists(array($this, 'searchModel'), $method)) {
echo $this->searchModel->$method();
}
exit;
}
る場合にはいったい、ajaxを救済してくれればと思ってくれるかどうかっていうのは、Ajax、その後、メンバーの件数をご確認ください $this->searchModel
見されている場合れたメソッドに渡されたとして、ajaxのメソッドのarguement.
だかの方法でエコーでの返り値が、その後終了します。
私の問題はできませんの method_exists()
る方法を探!ただ、それは実際に存在しており...私もハードコードされた(試験目的のための方法を知っている。
で駆動いているから、自分で言うのも何ですが、なぜうになっているが悪いのでしょうか。
よろしく!
P.S.私が使っているのKohanaの枠組みとは思えないのです。
更新
だとお考えに触っ内部メソッド名は、JavaScript(公害のセキュリティ上の懸念事項とな?
解決
ご利用中の最初の引数 method_exists()
している場合をサポートしているコールバック引数なしのコールバック.で受け付けないオブジェクトインスタンスまたはクラス名(string)のための試験静的ます。
してみてください:
if (method_exists($this->searchModel, $method)) {
echo $this->searchModel->$method();
}
再第二の質問は、ありだと思い、セキュリティ面で心配です。てしまっていない検証の請求であることもありません。私は使用しないで"キャッチオーソリューションまであるといえるでしょう。
他のヒント
行きたいというコードは次のようにコメントしている。
if(method_exists($this->searchModel, $method))
echo $this->searchModel->$method();
ただし、 は るのは悪いことをなすべてのメソッドのsearchModelオブジェクトを世界には、接頭辞は、ajaxの方法は"ajax_
'または類似したようにのみ呼び出すことはでき法とその接頭辞:
// given that $method is 'user_login' ...
$realMethod = 'ajax_' . $method;
if(method_exists($this->searchModel, $realMethod))
// calls $this->searchModel->ajax_user_login();
echo $this->searchModel->$realMethod();