開発環境
- Laravel9
概要
Laravelでクリーンアーキテクチャ実装していた際、
DomainやUseCaseを入れるためにPackagesという新しいディレクトリを作成しました。
しかし、新しく作成したディレクトリにクラスを作成しても、このままでは使うことができません。
毎回プロジェクトの最初だけ行って忘れてしまうため、備忘録として残します。
結論
composer.jsonのautoload(psr-4)に追記する
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Packages\\": "packages/" *** 追記する ***
}
},
※autoload-devにもpsr-4がありますが、autoloadへの追記でエラーは解消されます
utoload(オートロード)とは namespaceを指定するだけで、
require_once
などを使わずに自動的にファイルやクラスを解決してくれる、
composerの便利な仕組みです。
プロジェクト直下に新しいディレクトリを作成するときは、
composer.jsonのautoload(psr-4)に追記するようにしましょう
プロジェクト直下のapp
内にディレクトリやクラスを作成する場合は、
デフォルトで記載があるため、追記の必要はありません。
"App\\": "app/",
注意
namespaceやuseに記述する際はapp
と同じように大文字で記述します
namespace Packages\UseCase\***; ←ディレクトリ名はpackagesだが、Packagesと書く
use App\Http\Controllers\***; ←ディレクトリ名はappだが、Appと書く