源码分析(二)—入口篇

栏目: 编程工具 · 发布时间: 6年前

内容简介:用户发起的请求都会经过应用的入口文件,通常是 ==public/index.php==文件。当然,你也可以更改或者增加新的入口文件。通常入口文件的代码都比较简单,一个普通的入口文件代码如下:通常,我们不建议在应用入口文件中加入过多的代码,尤其是和业务逻辑相关的代码。

源码分析---入口篇

源码分析

应用入口

用户发起的请求都会经过应用的入口文件,通常是 ==public/index.php==文件。当然,你也可以更改或者增加新的入口文件。

通常入口文件的代码都比较简单,一个普通的入口文件代码如下:

// 应用入口文件

// 定义项目路径
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

通常,我们不建议在应用入口文件中加入过多的代码,尤其是和业务逻辑相关的代码。

加载引导文件

// ThinkPHP 引导文件
// 1. 加载基础文件
require __DIR__ . '/base.php';

// 2. 执行应用
App::run()->send();

加载基础文件

// __DIR__ . '/base.php'文件


//定义常量
define('THINK_VERSION', '5.0.24');

....//常量太多省略了部分


// 载入Loader类
require CORE_PATH . 'Loader.php';

// 加载环境变量配置文件
if (is_file(ROOT_PATH . '.env')) {
    $env = parse_ini_file(ROOT_PATH . '.env', true);

    foreach ($env as $key => $val) {
        $name = ENV_PREFIX . strtoupper($key);

        if (is_array($val)) {
            foreach ($val as $k => $v) {
                $item = $name . '_' . strtoupper($k);
                putenv("$item=$v");
            }
        } else {
            putenv("$name=$val");
        }
    }
}

// 注册自动加载
\think\Loader::register();

// 注册错误和异常处理机制
\think\Error::register();

// 加载惯例配置文件
\think\Config::set(include THINK_PATH . 'convention' . EXT);

该部分主要是定义一些系统常量,关键点是引入了自动加载类并且注册了自动加载,使得框架可以自动引入类文件,业务层只要直接use对应命名空间的类即可进行实例化,注册错误及异常处理机制, 加载默认配置等操作。

最后就是应用启动,App::run()->send();


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

释放潜能:平台型组织的进化路线图

释放潜能:平台型组织的进化路线图

穆胜 / 人民邮电出版社 / 2017-12 / 59.80元

传统的组织模式中,企业逃不出“员工动不起来”和“创新乏力”的宿命。互联网改变商业逻辑的同时也改变了组织逻辑。平台型组织是匹配互联网商业逻辑的组织模式,它赋予了基层员工更多的责权利,能够在需求侧灵敏获取用户刚需、在供给侧灵活整合各类资源、用“分好钱”的机制激活个体去整合各类资源满足用户刚需,形 成供需之间的高效连接。 打造平台型组织有两大主题:一是通过设计精巧的激励机制让每个人都能感受到市场的压力,......一起来看看 《释放潜能:平台型组织的进化路线图》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具