私Laravelアプリケーションを維持し、私は以下のソリューション行った重複コードの多くから自分自身を保存するには:Laravel:拡張コントローラーやTraitなどを使用しますか?
をBaseController
class BaseController extends Controller
{
public function get($id){
return $this->baseService->get($id);
}
public function getAll(){
return $this->baseService->getAll();
}
}
BaseService
class BaseService
{
protected $model;
public function __construct($model){
$this->model = $model;
}
public function get($id){
return response()->json($this->model->where('id', $id)->first());
}
public function getAll()
{
return $this->model->get();
}
}
MyController
class MyController extends BaseController
{
protected $model;
protected $baseService;
public function __construct(){
$this->model= new Model();
$this->baseService = new BaseService($this->model);
}
/**
* This controller has all the functionality from BaseController now
*/
}
これは良い方法であると私は思っています。私はこれに固執すべきか、あるいは私は別のアプローチをとるべきですか?私はTraitsについて聞いたことがあるが、同じことをしているかどうかは分からない。それは私が使っているLaravel 5.5です。
ありがとう、これは本当に有用な素材です。私は見てみましょう。 –