常規(guī)情況下,api想無(wú)狀態(tài),個(gè)么session就是浪費(fèi)咯
但是系統(tǒng)啟動(dòng)路徑是:start.php -> (config)bootstrap.php-> Session.php implements Bootstrap類的start接口啟動(dòng)
沒(méi)想到好辦法在指定的路由上禁用session,有沒(méi)有好辦法取巧一下呢?
進(jìn)程啟動(dòng)的時(shí)候初始化session模塊的消耗可以忽略不計(jì),在性能不存在浪費(fèi)的說(shuō)法。
如果你不使用session,就不調(diào)用$request->session()
方法就好了,它在請(qǐng)求處理過(guò)程中不會(huì)有任何消耗。
如果你想在特定的控制器上禁用 $request->session()
方法,可以在 support/Request.php
重寫(xiě)session()
方法。support/Request.php
是個(gè)空文件,是專門用來(lái)重寫(xiě)$request相關(guān)方法的。
class Request extends \Webman\Http\Request
{
public function session()
{
if ($this->controller === 'app\controller\api') {
throw new \Exception('session forbidden for api');
}
return parent::session();
}
}