独学者Fossa

独学していることなど

簡易モジュール構造(1)

fossa-hobby.hatenablog.com

使用環境

Name Version
PHP 8.1 or 8.2
Laravel 9 or 10

設置方法

composer.jsonに追記

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/",
        "Modules\\": "Modules/",
    }
},

Modules/Admin/Providers/AdminServiceProvider.php

<?php

namespace  Modules\Admin\Providers;

use Illuminate\Support\ServiceProvider;

class AdminServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->mergeConfigFrom(__DIR__.'/../Config/admin.php', 'admin');
        $this->loadViewsFrom(__DIR__.'/../Resources/views', 'admin');
    }

    public function register()
    {
        $this->app->register(RouteServiceProvider::class);
    }

    public function provides()
    {
        return [];
    }
}

config/app.phpに追記

config/app.phpに、記述するのが、確実で、一番とってり早い方法です。

    'providers' => [
                         <中略>
        App\Providers\RouteServiceProvider::class,

        Modules\Admin\Providers\AdminServiceProvider::class,
    ],

LaravelPackage Auto Discoveryが、存在しなかった頃の方法ですね。