thinkphp5的一处设计问题导致多处不兼容

浏览:620 发布日期:2018/02/03 分类:ThinkPHP5专区
/**
 * require
 * @param  string $file 文件路径
 * @return mixed
 */
function __require_file($file)
{
    return require $file;
}
/**
     * 注册 composer 自动加载
     * @access private
     * @return void
     */
    private static function registerComposerLoader()
think\Loader类 650行左右__require_file函数,因为这个函数使用了require关键字,导致我用composer加载的文件(声明在conposer\autoload_files.php中的助手函数文件)会被tp再次加载(registerComposerLoader 方法再次强行加载),直接导致函数declared错误;
实际场景举例:1.我在behavior中use Jump这个trait,会和think\Controller顶部import的jump trait冲突。2.我使用thinkphp和gatewayworker集成时,因为workerman会将所有的文件先require进内存,当执行到thinkphp框架时,会因为重复引入文件而爆declared错误;
最佳答案
评论( 相关
后面还有条评论,点击查看>>