name(); $factory = $this->factory(); $drivers = $this->drivers(); $app->bind($name, function ($app) use ($name, $factory, $drivers) { foreach ($drivers as $key => $value) { $factory->addDriver($key, $value); } $config = config($name); return $factory->connect($config[$config['default']]); }); } abstract protected function name(): string; abstract protected function factory(): DriverFactory; abstract protected function drivers(): array; }