因为项目规模较小,所以从一开始就使用TP单模块方式开发。

其中有一个控制器负责Api访问(实际上应该做成独立模块可能比较好?)。

发现因为打开了默认启动Session,所以Api在被访问的时候是访问一次就产生一个session,造成大量无用Session空文件。

解决方案:

定位文件位置 /ThinkPHP/Library/Think/App.class.php 搜索session,你会找到这样的代码:

        if(!IS_CLI){
            session(C('SESSION_OPTIONS'));
        }

加入判断控制器的代码,就可以针对某些控制器不开启session了,有多个控制器就多个判断

        if(!IS_CLI && CONTROLLER_NAME!="Api"){
            session(C('SESSION_OPTIONS'));
        }

有个控制器就一个地方需要用的session怎么办?可以在session方法调用前手写 session_start();