【Laravel】ディレクトリ構成について
skonishi1125.icon
デフォルトのappから、色々必要なディレクトリを拡張してしまって構わない
ただし、複数形が良いと思う
既存で存在するディレクトリが、Modelsとかなので。
code:拡張例
app
┣ Constants
┣ Enums
┣ Exceptions
┣ Helpers
┣ Providers
┣ Rules
┣ Services
┣ Traits
┣ View
┣ Composers
Constants
ModelやControllerに属さなさそうな定数を管理する。
code:FilePaths.php
<?php
declare(strict_types=1);
namespace App\Constants;
class FilePaths
{
public const FILES_UPLOAD_PATH = '/files';
public const FILES_TEMP_PATH = '/tmp';
public const MANUAL_PATH = '/manual';
}
FilePaths::FILES_UPLOAD_PATHなどで呼べて、管理しやすくなる
Enums
https://www.php.net/manual/ja/language.types.enumerations.php
同じく定数管理の役割
code:php
<?php
namespace App\Enums\Rpg;
enum AttackType: int
{
case NoType = 0;
case Physical = 1;
case Magic = 2;
public function label(): string
{
return match ($this) {
self::NoType => '分類なし(ワイドガードなど)',
self::Physical => '物理攻撃',
self::Magic => '魔法攻撃',
};
}
}
こんな感じで書いて、以下のように呼ぶことができる。ラベルは人間向けの文章。
code:php
Attacktype::NoType->value
= 0
Attacktype::NoType->label()
= "分類なし(ワイドガードなど)"