class FooBarController extends Controller
{

    public function __construct()
    {
        $this->middleware(function (Request $request, $next) {
            app()->bind(BaseRepository::class, fn($app) => $app->make(FooBarRepository::class));
            return $next($request);
        });
    }
}
interface BaseRepository {}
  • 左側のクラスが定義されている場合、DIするときに右側のクラスのインスタンスを代入する

  • 左が親で、右が子

  • よくある設定は

  • 左がinterfaceで右が実装class