driver = $driver; $this->driver($driver); // Create the import driver } public function getProvider($interface) { $provider = $this->getDrivers()[$this->driver]; if ($provider instanceof $interface) { return $provider; } $this->driver('local'); // Create the backup driver if it doesn't exist return $this->getDrivers()[$this->getDefaultDriver()]; } public function documents() { $provider = $this->getProvider(DocumentProvider::class); $provider->documents(); } public function user() { $provider = $this->getProvider(UserProvider::class); $provider->user(); } public function createVismaDriver() { echo 'CreateVismaProvider
'; return new VismaProvider(); } public function createLocalDriver() { echo 'CreateLocalDriver
'; return new LocalProvider(); } public function getDefaultDriver() { return 'local'; } }