PHP类文件的动态加载(静态引入文件的坑)

来源:互联网 发布:恺英网络 财报 编辑:程序博客网 时间:2024/06/07 11:15

在写一个开源框架,忽然发现php在多进程时执行的逻辑出现异常,导致子进程无法执行信号处理函数。经过一系列debug,发现php文件的静态引入造成了bug的发生,而使用动态加载类文件将会有效的解决这个bug,具体代码如下:

<?phpdefine("TOP_AUTOLOADER_PATH", dirname(__FILE__));class Autoloader{    /**     * 类库自动加载,写死路径,确保不加载其他文件。     * @param string $class 对象类名     * @return void     */    public static function autoload($class) {        $name = $class;        if(false !== strpos($name,'\\')){            $name = explode('\\',$class);            $name = array_pop($name);        }        //这里因工程目录结构而定        $filename = TOP_AUTOLOADER_PATH."/lib/".$name.".php";        if(is_file($filename)) {            include $filename;            return;        }    }}spl_autoload_register('Autoloader::autoload');

至于原因暂时未明,先记录一下这个坑。

0 0
原创粉丝点击