Laravel中通过Macroable宏来扩展类的能力
思考并回答以下问题:
- $new_closure = Closure::bind($closure, new ClassName(), ClassName::class);和$new_closure = $closure->bindTo(new ClassName(), ClassName::class);
Laravel-Macroable
思考并回答以下问题:
- Macro的中文是什么意思?
- static延迟静态绑定是什么意思?Traits中使用static是什么意思?
- Macroable Traits维护一个string=>obj/callable的数组并提供静态写入macro和查询hasMacro函数。怎么理解?
- __call()函数可以直接调用吗?(new Test(‘construct_param’))->__call(‘method’, ‘parameter’);可以这样写吗?
Laravel-Cache
思考并回答以下问题:
- use Macroable {__call as macroCall;}为什么这样写?
- CacheManager维护了一个[string=>Repository对象]的数组,并管理了各种Cache种类,是一个工厂。怎么理解?