常规情况下,api想无状态,个么session就是浪费咯 但是系统启动路径是:start.php -> (config)bootstrap.php-> Session.php implements Bootstrap类的start接口启动
没想到好办法在指定的路由上禁用session,有没有好办法取巧一下呢?
进程启动的时候初始化session模块的消耗可以忽略不计,在性能不存在浪费的说法。
如果你不使用session,就不调用$request->session()方法就好了,它在请求处理过程中不会有任何消耗。
$request->session()
如果你想在特定的控制器上禁用 $request->session()方法,可以在 support/Request.php重写session()方法。support/Request.php 是个空文件,是专门用来重写$request相关方法的。
support/Request.php
session()
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(); } }
谢谢大佬,这个样子就好了
进程启动的时候初始化session模块的消耗可以忽略不计,在性能不存在浪费的说法。
如果你不使用session,就不调用
$request->session()
方法就好了,它在请求处理过程中不会有任何消耗。如果你想在特定的控制器上禁用
$request->session()
方法,可以在support/Request.php
重写session()
方法。support/Request.php
是个空文件,是专门用来重写$request相关方法的。谢谢大佬,这个样子就好了