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