0

检查 HTTP 请求的正确位置是什么?在控制器、类构造函数或方法中?有没有标准的方法来做到这一点?在处理 GET/POST/etc 时,OOP 教程非常不同......

示例 #1(构造函数中的 http 请求检查,导致构造函数混乱)

class xxx {

    public function _construct() {

        if (isset($_GET["action"]) && $_GET["action"]=="logout") {
            $this->doLogout();  
        }
    }
}

示例 #2(http 请求签入方法,导致这里发生了什么构造函数)

class xxx {

    public function _construct() {
            $this->doLogout();
    }


    public function doLogout() {  

        if (isset($_GET["action"]) && $_GET["action"]=="logout") {
            $_SESSION = array();
            session_destroy();
        }        
    }
}

没有示例#3,因为您知道我的意思;)

4

1 回答 1

0

我想说最干净的方法是拥有一个路由器组件。让它作用于从服务器变量生成的对象(参见 symfony httpfoundation 或 zend http,这使得路由器和完整堆栈易于测试)并返回到哪个控制器和哪个方法来发送您的请求。如果您的某些方法有非常特殊的调用要求,请在两者之间放置一个中间控制器方法以路由到正确的方法。

如果你有一个前端控制器或一个主应用程序类,那将是一个很好的调用点。

于 2012-09-02T16:07:12.070 回答