<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Pagination\Paginator;

use Illuminate\Support\Facades\File;


class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     */
    public function register(): void
    {

        //$this->app->register('\\Modules\\Post\\Providers\\ModuleServiceProvider');

        //Поиск модулей
        $modulesBasePath = app_path('Modules');
        foreach (File::directories($modulesBasePath) as $moduleDirectory)
        {
            //Получить имя модуля из имени каталога
            $moduleName = basename($moduleDirectory);
            try
            {
                $providerClassName = '\\Modules\\' . $moduleName . '\\Providers\\ModuleServiceProvider';
                if (class_exists($providerClassName))
                {
                    //Зарегистрировать поставщика услуг модуля, если он существует
                    $this->app->register($providerClassName);
                }
            }
            catch (\Exception $e)
            {
                dd($e);
            }
        }
    }

    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        Paginator::useBootstrapFive();
        Paginator::useBootstrapFour();
    }
}
