开发者社区> 问答> 正文

自定义框架 的一个小问题?报错

自己练习写一个小框架,遇到这样一个问题:
DEBUG为false时,将所有载入的核心类文件生成一个文件~boot.php载入。
使用了如下的代码:
private static function LoadCore(){
// 创建载入核心类数组
$arr=array(
CORE_PATH.'/Log.php',
CORE_PATH.'/App.php',
CORE_PATH.'/Controller.php',
CORE_PATH.'/SmartyView.php',
FUNCTION_PATH.'/functions.php',

);
$str='';
foreach ($arr as $v) {
//将所有的文件写到一个字符串里面
$str.=trim(substr(file_get_contents($v), 5,-2));
include_once $v;
}
$str="<?php\r\n".$str;
file_put_contents(TEMP_PATH.'/~boot.php',$str)||die('it is false');
遇到一个问题,载入的类里有几个文件有命名空间,使用上面的方法写成一个文件后,会报错。因为不能保证所有的命名空间都在最前面,这种情况怎么处理了?请求高手赐教,谢谢

展开
收起
爱吃鱼的程序员 2020-06-09 14:12:53 460 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    namespacens1{

    //代码块

    }

    namespacens2{

    //代码块

    }

    namespace{

    //原本没有ns的代码块

    }

    可以参考symfony的app/bootstrap.php.cache文件

    The

    引用来自“leo108”的评论

    namespacens1{

    //代码块

    }

    namespacens2{

    //代码块

    }

    namespace{

    //原本没有ns的代码块

    }

    回复 @manbudezhu:参考https://github.com/symfony/symfony/blob/master/src/Symfony/Component/ClassLoader/ClassCollectionLoader.php回复 @leo108:我上面的代码生成的~boot.php文件有问题了,因为前面载入的文件没有名空间,且有输出.能把我的代码修正一下吗,谢谢没有问题的,没有命名空间的就按我给你的第三段操作就行
    2020-06-09 14:13:11
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JS 语言在引擎级别的执行过程 立即下载
继承与功能组合 立即下载
函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务 立即下载