Commit eceeeb80 authored by hj's avatar hj

更新

parent d6b3a2f2
......@@ -12,6 +12,7 @@
namespace App\Providers;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Str;
use Prettus\Repository\Providers\LumenRepositoryServiceProvider;
class RepositoryServiceProvider extends LumenRepositoryServiceProvider
......@@ -20,42 +21,33 @@ class RepositoryServiceProvider extends LumenRepositoryServiceProvider
public function register()
{
parent::register(); // TODO: Change the autogenerated stub
$this->bindRepository();
$this->bindRepository('app/Repositories/Contracts');
$this->bindRepository('app/Rhawn/Repositories/Contracts');
$this->bindRepository('app/Finance/Repositories/Contracts');
}
protected function bindRepository()
protected function bindRepository($path)
{
$fileObj = (new Filesystem());
$files = $fileObj->files(base_path('app/Repositories/Contracts'));
$files = app(Filesystem::class)->allFiles(base_path($path));
if($files){
collect($files)->map(function ($file){
$fileName = $file->getRelativePathname();
list($name,$extend) = explode('.',$fileName);
$class = "App\Repositories\Contracts\\".$name;
$concrete = "App\Repositories\Eloquent\\".$name."Eloquent";
$this->app->bind($class,$concrete);
});
collect($files)->map(function ($file) use ($path){
$filePath = $file->getRelativePathname();
$class = str_replace('/', '\\', $path).'\\';
if(!Str::contains($filePath, 'app')){
$class = 'app\\'.$class;
}
$files = $fileObj->files(base_path('app/Rhawn/Repositories/Contracts'));
if($files){
collect($files)->map(function ($file){
$fileName = $file->getRelativePathname();
list($name,$extend) = explode('.',$fileName);
$class = "App\Rhawn\Repositories\Contracts\\".$name;
$concrete = "App\Rhawn\Repositories\Eloquent\\".$name."Eloquent";
$this->app->bind($class,$concrete);
});
$class = ucfirst($class);
$concrete = str_replace('Contracts', 'Eloquent', $class);
if(Str::contains($filePath,'/')){
list($directory, $file) = explode('/',$filePath);
$class .= "$directory\\";
$concrete .= "$directory\\";
$filePath = $file;
}
list($name,$extend) = explode('.',$filePath);
$files = $fileObj->files(base_path('app/Finance/Repositories/Contracts'));
if($files){
collect($files)->map(function ($file){
$fileName = $file->getRelativePathname();
list($name,$extend) = explode('.',$fileName);
$class = "App\Finance\Repositories\Contracts\\".$name;
$concrete = "App\Finance\Repositories\Eloquent\\".$name."Eloquent";
$this->app->bind($class,$concrete);
$this->app->bind($class.$name, $concrete.$name."Eloquent");
});
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment