5

インタビューの質問の1つで、私は以下の質問に答えます

「カスタムビルドフレームワークで開発者が$_GET変数を使用するように制限する方法」

独自のカスタムビルドフレームワークがありますが、フレームワークでは、またはの代わりに、または$_GET$_POST代わりにユーザーを制限することはできません。$this->request->get$this->request->post

この変数にアクセスするためのメソッドがありますが、ほとんどの場合、メソッドの代わりに、$_GETまたはメソッドを使用します。$_POST

その答えを教えていただけますか?

ありがとう

4

1 に答える 1

6

Gphp.iniで、オプションからとP文字を削除しvariables_orderます。

または、スーパーグローバルのコンテンツをコピーして、対話しようとするたびに例外をスローするクラスのインスタンスに設定することもできます。

class supaglobal implements arrayaccess
{
    public function _construct(){}

    function offsetExists($offset) {
        throw new Exception("Don't use GET, bro");
    }
    function offsetSet($property, $value){
        throw new Exception("Don't use GET, bro");
    }
    function offsetUnset($property) {
        throw new Exception("Don't use GET, bro");
    }
    function offsetGet($property){
        throw new Exception("Don't use GET, bro");
    }
}

$approvedget = $_GET;
$_GET = new supaglobal();
$abcd = $_GET["abcd"]; // throws exception
$abcd = $approvedget["abcd"]; // A - OK
于 2012-11-12T07:51:47.197 に答える