我们会发现 laravel
框架源码中有很对 SPL
的 多空继承
比如下图
期初不理解,现在来看,个人的理解是,在获取 SPL
类的函数时,不需要每次都重新绑定这个类。内在的机制我会后续慢慢研究补充,但是作用应该就是这个作用
比如你要继承 SplFileInfo
的 SPL
获取一个文件后缀,需要这样写代码
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());