laravel核心

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

2018-09-05  本文已影响3人  云龙789

我们会发现 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());

上一篇 下一篇

猜你喜欢

热点阅读