在laravel里,向框架已有的类添加一个方法可通过
Illuminate\Support\Traits\Macroable
这个动态类实现。
比如我想在Request 对象里添加一个自定义的方法,可以通过以下方式
Request::macro('isApiRequest', function () {
return $this->header('Accept') === 'application/json';
});
在控制器里就可以直接调用
$request->isApiRequest();
现在的webman框架如果想要为Request,Response等对象添加自定义的方法,只能通过子类继承\Webman\Http\Request
的方式。
如果webman能支持Macroable
那么开发者就可以在自己的bootstrap里面无侵入的为框架已有的类添加各种自定义方法。
不支持,欢迎pr
哈哈,其实这个支持挺简单的,composer require illuminate/macroable
然后 在 Webman\Http\Request 和Response 类 里加上 use Macroable; 即可
我只是担心按照webman框架最小核心为理念,有没有必要内置进来
可以使用闭包Closure的的bind、call特性