typecho里index.php里面没有require或include,怎么执行Typecho_Widget::widget('Widget_Init');

我是个菜鸟。

弱弱请问一下,我看到index.php里面有Typecho_Widget::widget('Widget_Init');
在这条语句之前没有require或include其他文件,我也没找到__autoload函数,怎么能执行的呢

阅读 4.6k
1 个回答

index.php 开头

if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') {
    file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File');
    exit;
}

是有载入config.inc.php的.

跟踪下config.inc.php, 发现是在install.php里面生成.

关键位置

https://github.com/typecho/typecho/blob/c6a468fdcb20d22c8b6676617d48e3dee7f6b1a1/install.php#L515

$lines = array_slice(file(__FILE__), 0, 52);

挺有意思的,是读取install.php,0-52行.

刚好这几行都是初始化的,包括require_once.

最后这个$lines就成config.inc.php的内容了.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
101 新手上路
子站问答
访问
宣传栏