5. PHP 文件包含

配置缓存原理

接上一篇最后我们提出来一个问题:为何缓存配置信息即可提高运行效率呢?

这是因为 PHP 是脚本语言,每一次的用户请求,都会加载所有程序文件,随着我们的配置文件的增多,每一次程序启动所需加载的时间就会延长。

配置缓存的原理是将 config 文件夹下的所有 .php 文件合并到单一 bootstrap/cache/config.php 文件里,以此来达到加速的效果。

接下来我们来做一个测验,来统计下文件加载数量的信息。

首先我们新建中间件:

$ php artisan make:middleware PerformanceDebug

打开此文件 app/Http/Middleware/PerformanceDebug.php ,写入以下代码:

app/Http/Middleware/PerformanceDebug.php

<?php

namespace App\Http\Middleware;

use Closure;

class PerformanceDebug
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        // 确保在开发环境下
        if (app()->isLocal()) {

            // 计算包含了多少文件
            $included_files_count = count(get_included_files());

            dd($included_files_count);
        }

        return $response;
    }
}

保存后,我们还需要注册中间件,打开 Kernel.php,在 $middleware 全局中间件数组中注册我们的中间件:

app/Http/Kernel.php

<?php
.
.
.
class Kernel extends HttpKernel
{
    // 全局中间件
    protected $middleware = [
        .
        .
        .
        \App\Http\Middleware\PerformanceDebug::class,
    ];

    .
    .
    .
}

修改后保存,并刷新浏览器,可以看到加载的文件数量:

文件包含

这时候,我们命令行里:

$ php artisan config:clear

清空配置缓存后,我们再刷新浏览器:

文件包含

可以看出,我们在不使用配置缓存的情况下,每次要多加载 200 多个文件,因此影响了程序的响应时间。

为了方便后面课程的讲解,我们先把 中间件里 dd() 函数的调用注释掉:

文件包含

Git 版本控制

接下来我们把代码整理好:

$ git add app/Http/Middleware/PerformanceDebug.php app/Http/Kernel.php
$ git commit -m "add log performance middleware"

此时使用 git status 命令,可以看到 config 目录里刚刚创建的 200 个作为测试的文件。我们不再需要这些文件,请使用以下命令来删除这些文件。

注意:请再三检查你是否有未提交的文件,以下命令会删除所有更改和未跟踪的文件:

$ git clean -f -d

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~