D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
developers.ghanempharmacy.com
/
app
/
Providers
/
Filename :
InterfaceServiceProvider.php
back
Copy
<?php namespace App\Providers; use App\Contracts\ControllerInterface; use App\Http\Controllers\BaseController; use Illuminate\Support\Facades\File; use Illuminate\Support\ServiceProvider; class InterfaceServiceProvider extends ServiceProvider { /** * Register services. */ public function register(): void { $this->bindInterfaceWithRepository(); } private function bindInterfaceWithRepository():void { $this->app->bind(ControllerInterface::class, BaseController::class); $repositoriesPath = app_path('Repositories'); $contractsPath = app_path('Contracts/Repositories'); $repositoryFiles = File::files($repositoriesPath); foreach ($repositoryFiles as $file) { $filename = pathinfo($file, PATHINFO_FILENAME); $interfaceName = $filename . 'Interface'; $interfacePath = $contractsPath . DIRECTORY_SEPARATOR . $interfaceName . '.php'; if (File::exists($interfacePath)) { $interface = 'App\Contracts\Repositories\\' . $interfaceName; $repository = 'App\Repositories\\' . $filename; $this->app->bind($interface, $repository); } } } /** * Bootstrap services. */ public function boot(): void { // } }