laravel空类继承总是继承SPL的原因

我们会发现 laravel 框架源码中有很对 SPL的 多空继承
比如下图

image.png

期初不理解,现在来看,个人的理解是,在获取 SPL 类的函数时,不需要每次都重新绑定这个类。内在的机制我会后续慢慢研究补充,但是作用应该就是这个作用

比如你要继承 SplFileInfoSPL 获取一个文件后缀,需要这样写代码

app()->bind('test',function(){
    return new \SplFileInfo(__FILE__);
});
$extension = app('test')->getExtension();
dd($extension);

但是如果我们单独写一个类继承 SplFileInfo, 就可以直接获取里面的值,不需要每次都重新绑定这个类

<?php

namespace App\Http\Controllers;

class LongController extends \SplFileInfo
{

    public function __construct($file_name = __FILE__)
    {
        parent::__construct($file_name = __FILE__);
    }
}

然后在需要获取文件后缀的函数里面可以直接执行
dd(app(LongController::class)->getExtension());

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容