Метод register()
предполагает полное имя класса, а не путь к файлу.
Вы можете использовать стандартную стратегию определения местоположения и именования для своих поставщиков услуг, чтобы зациклить их на основеимя модуля:
/** @var \Illuminate\Filesystem\Filesystem $filesystem */
$filesystem = $this->app->make('files');
foreach ($files->directories(app_path('Azam/Modules')) as $directory) {
$directoryName = last(explode('/', $directory));
$this->app->register("App\\Azam\\Modules\\{$directoryName}\\{$directoryName}ServiceProvider");
}
Или, если вы хотите создать глобальный модуль и найти каких-либо поставщиков услуг с любым конкретным именем, вам нужно будет найти классы в каждом файле и определить, расширяют ли они Illuminate\Support\ServiceProvider
class или иметь конкретный суффикс имени (например, ServiceProvider
).