在laravel里,向框架已有的類添加一個方法可通過
Illuminate\Support\Traits\Macroable
這個動態(tài)類實現(xiàn)。
比如我想在Request 對象里添加一個自定義的方法,可以通過以下方式
Request::macro('isApiRequest', function () {
return $this->header('Accept') === 'application/json';
});
在控制器里就可以直接調(diào)用
$request->isApiRequest();
現(xiàn)在的webman框架如果想要為Request,Response等對象添加自定義的方法,只能通過子類繼承\Webman\Http\Request
的方式。
如果webman能支持Macroable
那么開發(fā)者就可以在自己的bootstrap里面無侵入的為框架已有的類添加各種自定義方法。