我想将类的方法重写get()
为Illuminate\Cache\Repository
:
<?php
namespace App\Illuminate\Cache;
use Illuminate\Cache\Repository as BaseRepository;
class Repository extends BaseRepository{
public function get($key)
{
// changes
}
}
但我不知道如何告诉 Laravel 加载我的类而不是原来的类。
有什么办法吗?
编辑 1
我创建了一个macro()
,但它仅在该方法不存在时才有效BaseRepository
,例如:
这不起作用
use Illuminate\Cache;
Cache\Repository::macro('get',function (){
return 'hi';
});
但是,这有效:
use Illuminate\Cache;
Cache\Repository::macro('newName',function (){
return 'hi';
});
所以macro
不能这样做,因为 Laravel::macro()
正在创建一个新函数但没有覆盖