Laravel 11の変更点総まとめ|スリム化されたディレクトリ構造・Kernel廃止とbootstrap/app.phpの設定・移行ポイントを徹底解説

Laravelニュース・最新情報Laravel入門基本文法・構文ガイド実装・応用テクニック運用・保守・セキュリティ

PHPの代表的フレームワークであるLaravelは、バージョン Laravel 11 において、アプリケーションの骨格(Skeleton)を大幅にシンプル化する歴史的なリファクタリングを実施しました。

これまで長年親しまれてきた app/Http/Kernel.phpapp/Console/Kernel.phpapp/Exceptions/Handler.php が廃止され、設定やルーティング、ミドルウェアの登録が bootstrap/app.php へ一元集約 されるなど、開発者が日々触るファイル構成が劇的にスリム化されています。

📌 本記事でマスターできること:

  • Laravel 11の全体像と設計思想(なぜスリム化されたのか?)
  • Laravel 10とLaravel 11のディレクトリ構造比較(廃止されたファイル・残ったファイル)
  • 新しい設定の心臓部 bootstrap/app.php の書き方とフルエント設定構文
  • ミドルウェアの登録方法(エイリアス・グローバル・除外設定)の完全解説
  • ルーティングの変更点(routes/api.php のオンデマンド生成・routes/console.php のスケジュール統合)
  • 例外処理(Exception Handler)の新しいカスタマイズ手順
  • 設定ファイル(config/)のオンデマンド公開(php artisan config:publish
  • Eloquentモデルの casts() メソッド構文とメリット
  • SQLite WALモード・MariaDB公式サポート・Dumpableトレイトなどの注目新機能
  • Laravel 10からの安全なアップグレード手順と後方互換性

「Laravel 11で新規プロジェクトを作成したらフォルダが少なくて戸惑った」「ミドルウェアや例外処理をどこに書けばいいかわからない」「Laravel 10からの移行ポイントを押さえたい」という方に向けて、変更点を実例コード付きでわかりやすく網羅解説します。

  1. 1. Laravel 11の主要な変更点まとめ一覧【早見表】
  2. 2. 刷新されたスリムなディレクトリ構造の全貌
    1. Laravel 10 と Laravel 11 のディレクトリ構造比較
  3. 3. 設定の心臓部:bootstrap/app.php の全体像
    1. 新規作成時のデフォルトコード
    2. bootstrap/app.php の3大チェーンメソッド
  4. 4. ミドルウェアの登録・設定方法の変更点
    1. ① ルートミドルウェアのエイリアス(別名)登録
    2. ② グローバルミドルウェアの追加(append / prepend)
    3. ③ web / api ミドルウェアグループのカスタマイズ
    4. ④ 未ログイン時・ログイン済みのリダイレクト先設定
    5. ⑤ CSRF検証の除外(validateCsrfTokens)
    6. ⑥ Cookie暗号化の除外(encryptCookies)
    7. カスタムミドルウェアの新規作成コマンド
  5. 5. ルーティングの変更点(API・Console・スケジュール)
    1. ① APIルーティングの有効化:install:api
    2. ② ブロードキャストの有効化:install:broadcasting
    3. ③ タスクスケジュールの定義が routes/console.php に統合!
  6. 6. 例外処理(Exception Handling)のカスタマイズ
    1. カスタム例外の描画(renderable)
    2. ログ通知・レポートの制御(report / dontReport)
  7. 7. 設定ファイル(config/)のオンデマンド公開
    1. カスケード設定(フレームワークデフォルト)の仕組み
    2. 設定ファイルをカスタマイズしたい時:config:publish
  8. 8. Eloquentモデルの変更点:casts() メソッド構文
    1. 従来のプロパティ構文 vs 新しいメソッド構文
    2. casts() メソッド化の3大メリット
  9. 9. その他の注目新機能・開発効率化アップデート
    1. ① デフォルトデータベースが SQLite(WALモード)に
    2. ② MariaDBドライバ(mariadb)の公式サポート
    3. ③ 暗号化キーの安全なローテーション(APP_PREVIOUS_KEYS)
    4. ④ Dumpableトレイトの全面導入
    5. ⑤ 新規クラス生成Artisanコマンドの拡充
    6. ⑥ 秒単位のレート制限(Per-second Rate Limiting)
  10. 10. Laravel 10からLaravel 11への安全な移行・アップグレード手順
    1. ステップ①:環境要件の確認
    2. ステップ②:composer.json の依存関係を更新
    3. ステップ③:ディレクトリ構造はLaravel 10のままでOK?
  11. 11. よくある質問(FAQ)
  12. 12. 関連記事・あわせて読みたいLaravel実践ガイド
  13. 13. まとめ:スリムになったLaravel 11で快適な開発を体験しよう
  14. 関連記事

1. Laravel 11の主要な変更点まとめ一覧【早見表】

まずは、Laravel 11で何がどのように変わったのか、主要な変更ポイントを一覧表で把握しましょう。

カテゴリ Laravel 10 以前 Laravel 11
PHP必須バージョン PHP 8.1 以上 PHP 8.2 / 8.3 以上
Kernelクラス app/Http/Kernel.php
app/Console/Kernel.php
完全廃止bootstrap/app.php に集約)
例外ハンドラ app/Exceptions/Handler.php 完全廃止bootstrap/app.php に集約)
ミドルウェア配置 app/Http/Middleware/ に9個以上のデフォルトクラス フレームワーク内部に内包(ディレクトリは初期空)
ルーティングファイル web.php, api.php, console.php, channels.php デフォルトは web.phpconsole.php のみ
(API/BroadcastはArtisanで導入)
設定ファイル群 config/ 配下に約15個のPHPファイルが初期配置 初期状態はほぼ空(必要な設定のみ config:publish で生成)
サービスプロバイダ Auth, Event, Route 等5個以上のプロバイダ AppServiceProvider.php のみ
Eloquent Casts protected $casts = [...];(プロパティ) protected function casts(): array(メソッド)
初期データベース MySQL 設定がデフォルト(.envで変更) SQLite(WALモード)が標準デフォルト
ヘルスチェック 手動でルートまたはパッケージ導入 /up エンドポイントが標準ビルトイン

2. 刷新されたスリムなディレクトリ構造の全貌

Laravel 11の最大の特徴は、「ボイラープレート(定型コード)を徹底的に削ぎ落としたスリムなスケルトン」 です。

Laravel 10 と Laravel 11 のディレクトリ構造比較

Laravel 10 以前の構造(ファイル多数) Laravel 11 の構造(超スリム)🌟
app/
├── Console/
│ └── Kernel.php
├── Exceptions/
│ └── Handler.php
├── Http/
│ ├── Controllers/
│ ├── Middleware/ ❌
│ │ ├── Authenticate.php
│ │ ├── EncryptCookies.php
│ │ ├── RedirectIfAuthenticated.php
│ │ ├── TrimStrings.php
│ │ ├── TrustProxies.php
│ │ └── VerifyCsrfToken.php
│ └── Kernel.php
├── Models/
└── Providers/
    ├── AppServiceProvider.php
    ├── AuthServiceProvider.php
    ├── BroadcastServiceProvider.php
    ├── EventServiceProvider.php
    └── RouteServiceProvider.php
config/ (15+ ファイル) ❌
routes/
├── web.php
├── api.php
├── console.php
└── channels.php
app/
├── Http/
│ └── Controllers/
│ └── Controller.php
├── Models/
│ └── User.php
└── Providers/
    └── AppServiceProvider.php

bootstrap/
├── app.php 🌟(最重要集約ファイル)
└── providers.php

config/ (初期状態は空・必要時のみ生成)
database/
routes/
├── web.php
└── console.php(Artisan & スケジュール)

💡 なぜこれほどスリムになったのか?
Laravel 10までは、フレームワークを新規インストールした時点で「カスタマイズするかどうかわからない数十個のファイル」が配置されていました。Laravel 11では、「デフォルトの挙動はフレームワーク内部が安全に受け持ち、開発者がカスタマイズしたい部分だけを bootstrap/app.php や専用コマンドで宣言する」という設計思想にシフトしました。これにより、初心者にとっての見通しの良さと、プロ向けの高い柔軟性が両立されています。

3. 設定の心臓部:bootstrap/app.php の全体像

Laravel 11のアプリケーション設定は、すべて bootstrap/app.php のフルエント(流れるような)インターフェースに集約されています。

新規作成時のデフォルトコード

<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        // ミドルウェアの追加・カスタマイズをここに記述
    })
    ->withExceptions(function (Exceptions $exceptions) {
        // 例外ハンドリングのカスタマイズをここに記述
    })->create();

bootstrap/app.php の3大チェーンメソッド

  1. withRouting()Webルート、Consoleルート、APIルート、Healthチェックルートの登録を行います。
  2. withMiddleware()グローバルミドルウェア、ミドルウェアグループ(web/api)、ルートエイリアス、CSRFやCookie暗号化の除外設定を行います(旧 app/Http/Kernel.php の代替)。
  3. withExceptions()カスタム例外の描画(renderable)、ログ報告制御(reportable)、HTTPエラー応答のカスタマイズを行います(旧 app/Exceptions/Handler.php の代替)。
🚀 標準搭載されたヘルスチェック(/up):
health: '/up' が定義されているため、ブラウザやAWS ALB、Kubernetes、Uptime Robot等から https://your-domain.com/up にアクセスするだけで、アプリケーションが稼働中であれば HTTP 200 OK(背景緑のステータス画面)が自動返却されます。自前でヘルスチェック用コントローラを作成する必要がなくなりました。

4. ミドルウェアの登録・設定方法の変更点

Laravel 10までは app/Http/Kernel.php に配列として定義していたミドルウェア設定は、すべて bootstrap/app.phpwithMiddleware() クロージャ内で行います。

① ルートミドルウェアのエイリアス(別名)登録

コントローラやルート定義で ->middleware('admin') のように名前で指定したいカスタムミドルウェアは、$middleware->alias() で登録します。

->withMiddleware(function (Middleware $middleware) {
    $middleware->alias([
        'admin' => \App\Http\Middleware\AdminMiddleware::class,
        'subscribed' => \App\Http\Middleware\EnsureUserIsSubscribed::class,
    ]);
})

② グローバルミドルウェアの追加(append / prepend)

すべてのHTTPリクエストで必ず実行させたいミドルウェアは、末尾に追加する append() または先頭に追加する prepend() を使用します。

->withMiddleware(function (Middleware $middleware) {
    // 全リクエストの最後に実行
    $middleware->append(\App\Http\Middleware\LogHttpActivity::class);

    // 全リクエストの最初に実行
    $middleware->prepend(\App\Http\Middleware\CheckMaintenanceMode::class);
})

③ web / api ミドルウェアグループのカスタマイズ

特定のグループ(web または api)にのみミドルウェアを追加・削除する場合の書き方です。

->withMiddleware(function (Middleware $middleware) {
    // webグループの末尾に追加
    $middleware->web(append: [
        \App\Http\Middleware\CustomSessionTracker::class,
    ]);

    // apiグループから特定のミドルウェアを削除
    $middleware->api(remove: [
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ]);
})

④ 未ログイン時・ログイン済みのリダイレクト先設定

Authenticate.phpRedirectIfAuthenticated.php で行っていた「未認証時の遷移先」「ログイン済み時の遷移先」は、1行で直感的に設定できます。

->withMiddleware(function (Middleware $middleware) {
    $middleware->redirectTo(
        guests: '/login',          // 未ログインユーザーが保護ルートにアクセスした時
        users: '/dashboard'        // ログイン済みユーザーがゲスト専用ルート(/login等)にアクセスした時
    );
})

⑤ CSRF検証の除外(validateCsrfTokens)

Webhookや外部決済連携(Stripe, PayPal, LINE Pay等)でCSRF保護をスキップしたいパスは、validateCsrfTokens()except で指定します(旧 VerifyCsrfToken.php の代替)。

->withMiddleware(function (Middleware $middleware) {
    $middleware->validateCsrfTokens(except: [
        'stripe/*',
        'webhooks/github',
        'api/external/*',
    ]);
})

⑥ Cookie暗号化の除外(encryptCookies)

->withMiddleware(function (Middleware $middleware) {
    $middleware->encryptCookies(except: [
        'visitor_analytics_token',
    ]);
})

カスタムミドルウェアの新規作成コマンド

カスタムミドルウェアが必要になった場合は、従来通り以下のArtisanコマンドを実行すると app/Http/Middleware/ ディレクトリとクラスが自動生成されます。

php artisan make:middleware AdminMiddleware

5. ルーティングの変更点(API・Console・スケジュール)

Laravel 11では、デフォルトのルーティングファイルが最小限に抑えられています。

① APIルーティングの有効化:install:api

新規インストール直後の routes/ ディレクトリには routes/api.php が存在しません。APIエンドポイントを構築する場合は、以下のArtisanコマンドを実行します。

php artisan install:api
💡 install:api コマンドが実行する自動処理:

  1. routes/api.php ファイルを作成
  2. bootstrap/app.phpwithRouting()api: __DIR__.'/../routes/api.php' を自動追記
  3. APIトークン認証パッケージ Laravel Sanctum のインストールとマイグレーションの準備

② ブロードキャストの有効化:install:broadcasting

WebSocketやPusher等のリアルタイム通信機能が必要な場合は、以下のコマンドで routes/channels.php とLaravel Reverb/Pusherの設定をセットアップします。

php artisan install:broadcasting

③ タスクスケジュールの定義が routes/console.php に統合!

app/Console/Kernel.php が廃止されたため、定期実行バッチ(Cronスケジュール)は routes/console.php に直接記述するシンプルなスタイルになりました。

<?php

use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Schedule;

// Artisanコマンドのクロージャ定義
Artisan::command('inspire', function () {
    $this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');

// タスクスケジュールの定義(Scheduleファサードを使用)
Schedule::command('emails:send-reminders')->dailyAt('09:00');
Schedule::command('queue:prune-failed --hours=48')->daily();
Schedule::command('backup:clean')->weeklyOn(1, '02:00');

6. 例外処理(Exception Handling)のカスタマイズ

app/Exceptions/Handler.phpregister() メソッドに書いていた例外ハンドリングは、bootstrap/app.phpwithExceptions() で定義します。

カスタム例外の描画(renderable)

特定の例外が発生した際に独自のJSONレスポンスやエラー画面を返したい場合の書き方です。

use App\Exceptions\PaymentFailedException;
use Illuminate\Http\Request;

->withExceptions(function (Exceptions $exceptions) {
    // 独自例外発生時のカスタムレスポンス
    $exceptions->render(function (PaymentFailedException $e, Request $request) {
        if ($request->is('api/*')) {
            return response()->json([
                'success' => false,
                'message' => '決済処理に失敗しました。カード情報をご確認ください。',
                'error_code' => $e->getCode(),
            ], 402);
        }

        return response()->view('errors.payment-failed', ['error' => $e->getMessage()], 402);
    });
})

ログ通知・レポートの制御(report / dontReport)

use App\Exceptions\IgnorableBusinessException;

->withExceptions(function (Exceptions $exceptions) {
    // ログ出力から除外する例外クラス
    $exceptions->dontReport([
        IgnorableBusinessException::class,
    ]);

    // 致命的エラー時の外部通知(SlackやSentry等)
    $exceptions->report(function (\Throwable $e) {
        if ($e instanceof \FatalThrowableError) {
            // Slack通知などのカスタムロジック
        }
    });
})

7. 設定ファイル(config/)のオンデマンド公開

Laravel 11では、新規インストール時に config/ ディレクトリ内がほぼ空になっています。

カスケード設定(フレームワークデフォルト)の仕組み

Laravel 11は、フレームワーク内部に各コンポーネント(app, database, auth, mail, logging等)のデフォルト設定を保持しています。そのため、.env に環境変数を設定するだけでほとんどの機能は設定ファイルなしで正常に動作します。

設定ファイルをカスタマイズしたい時:config:publish

詳細なドライバ設定や独自オプションを変更したい場合のみ、php artisan config:publish コマンドで対象の設定ファイルを config/ 配下に生成(公開)します。

# 特定の設定ファイルを公開する(例: database.php)
php artisan config:publish database

# メール設定を公開する
php artisan config:publish mail

# CORS設定を公開する
php artisan config:publish cors

# すべての設定ファイルを一括公開する(Laravel 10以前と同じ状態にしたい場合)
php artisan config:publish --all
公開コマンド 生成されるファイル 主な用途
config:publish database config/database.php 複数DB接続・レプリケーション・Redisクラスター設定
config:publish auth config/auth.php カスタム認証ガード・パスワードリセット有効期限
config:publish logging config/logging.php Slack通知ログチャンネル・Papertrail等の外部ログ連携
config:publish cors config/cors.php フロントエンドSPAとのクロスオリジン許可ドメイン設定

8. Eloquentモデルの変更点:casts() メソッド構文

Eloquentモデルの属性キャスト定義が、従来の $casts プロパティから protected function casts(): array メソッド に進化しました。

従来のプロパティ構文 vs 新しいメソッド構文

// 【Laravel 10以前】プロパティ構文
class User extends Authenticatable
{
    protected $casts = [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
        'is_admin' => 'boolean',
    ];
}

// 【Laravel 11以降】メソッド構文 🌟
class User extends Authenticatable
{
    /**
     * モデルの属性キャスト定義
     *
     * @return array
     */
    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'password' => 'hashed',
            'is_admin' => 'boolean',
            'status' => UserStatus::class, // Enumクラスの直接指定
            'options' => AsArrayObject::class,
        ];
    }
}

casts() メソッド化の3大メリット

  1. 動的メソッドや静的呼び出しが可能:静的プロパティではできなかった関数呼び出しや動的評価が可能になります。
  2. Enumやカスタムキャストへの引数受け渡しが容易:PHPの型補完や静的解析ツール(PHPStan/Psalm)との親和性が大幅に向上します。
  3. 後方互換性の維持:Laravel 11でも従来の protected $casts = [...]; プロパティは引き続き動作するため、既存コードが一気に壊れる心配はありません。

9. その他の注目新機能・開発効率化アップデート

① デフォルトデータベースが SQLite(WALモード)に

新規Laravel 11プロジェクトでは、.envDB_CONNECTION 初期値が sqlite になっています。さらに高速な WAL(Write-Ahead Logging)モード がデフォルトで有効化されており、並行アクセス時のパフォーマンスが向上しています。

DockerやMySQLサーバーを立ち上げることなく、composer create-project 後に即座に php artisan migrate して開発を始められます。

② MariaDBドライバ(mariadb)の公式サポート

これまでMySQLドライバを流用していたMariaDB向けに、専用の mariadb データベースドライバが追加されました。

DB_CONNECTION=mariadb
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_db
DB_USERNAME=root
DB_PASSWORD=

③ 暗号化キーの安全なローテーション(APP_PREVIOUS_KEYS)

本番環境で APP_KEY を定期更新する際、古いキーで暗号化されたCookieやセッション、暗号化カラムが復号できなくなる問題を解決するため、.env に過去のキーをカンマ区切りで保持できるようになりました。

APP_KEY=base64:新しい暗号化キー...
APP_PREVIOUS_KEYS=base64:1世代前のキー...,base64:2世代前のキー...

④ Dumpableトレイトの全面導入

Laravelの多くのクラス(Carbon, Collection, Http Client, TestResponse 等)に Dumpable トレイトが実装され、メソッドチェーンの途中で ->dump()->dd() を呼び出せるようになりました。

// メソッドチェーンの途中で中身を確認できる
$response = Http::withHeaders(['X-Token' => 'abc'])
    ->dump() // リクエスト内容をダンプ出力して処理継続
    ->post('https://api.example.com/data');

⑤ 新規クラス生成Artisanコマンドの拡充

php artisan make:class Services/PaymentService    # 通常のクラスを生成
php artisan make:enum Enums/UserRole              # Enumクラスを生成
php artisan make:interface Contracts/PaymentGateway # インターフェースを生成
php artisan make:trait Traits/Sluggable           # トレイトを生成

⑥ 秒単位のレート制限(Per-second Rate Limiting)

APIなどの過負荷対策として、分単位だけでなく秒単位でのリクエスト制限が可能になりました。

use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Cache\RateLimiting\Limit;

RateLimiter::for('api', function (Request $request) {
    // 1秒間に最大5リクエストまで許可
    return Limit::perSecond(5)->by($request->user()?->id ?: $request->ip());
});

10. Laravel 10からLaravel 11への安全な移行・アップグレード手順

既存のLaravel 10プロジェクトをLaravel 11へアップグレードする手順と注意点です。

ステップ①:環境要件の確認

  • PHP 8.2 または PHP 8.3 以上 にサーバー・ローカル環境を更新します。
  • Composer 2.2.0 以上を用意します。

ステップ②:composer.json の依存関係を更新

{
    "require": {
        "php": "^8.2",
        "laravel/framework": "^11.0",
        "laravel/sanctum": "^4.0",
        "laravel/tinker": "^2.9",
        "nunomaduro/collision": "^8.1"
    },
    "require-dev": {
        "larastan/larastan": "^2.9",
        "phpunit/phpunit": "^10.5"
    }
}

更新後、以下のコマンドでパッケージを更新します。

composer update

ステップ③:ディレクトリ構造はLaravel 10のままでOK?

✅ 重要な互換性:無理に新構造へ移行しなくても動作します!
Laravel 11は完全な後方互換性を備えています。既存プロジェクトに app/Http/Kernel.phpconfig/*.php が残っていても、Laravel 11上で何の問題もなく動作します。
新構造(スリムSkeleton)への移行は、プロジェクトの規模やスケジュールに合わせて段階的に行うか、自動移行ツール Laravel Shift を利用するのがおすすめです。

11. よくある質問(FAQ)

質問 回答
Q: routes/api.php が見当たりません。消えたのですか? 初期状態では配置されていません。php artisan install:api コマンドを実行すると、ファイル作成とルーティング設定、Sanctumのセットアップが一括で行われます。
Q: config/ ディレクトリに設定ファイルがありません。どう編集すればいいですか? 編集したい設定ファイルのみ php artisan config:publish database のように個別公開するか、php artisan config:publish --all で一括公開して編集できます。
Q: モデルの $casts プロパティは使えなくなりますか? いいえ、従来の protected $casts = [...]; プロパティも後方互換性により引き続き動作します。新規作成時はより柔軟な casts() メソッド構文が推奨されます。
Q: タスクスケジュールはどこに書けばいいですか? routes/console.phpSchedule::command(...)->daily(); のように記述します。app/Console/Kernel.php は不要です。

🚀 次期バージョン「Laravel 12」の新機能とアップグレード手順はこちら:
公式AI SDK(laravel/ai)統合やReact 19・Vue 3・Svelte対応の新スターターキット、Carbon 3への移行など最新の進化は Laravel 12の新機能・変更点総まとめ|公式AI SDK統合・最新スターターキットとLaravel 11からのアップグレード手順 で詳しく解説しています!

12. 関連記事・あわせて読みたいLaravel実践ガイド

Laravelの基礎から応用、実務テクニックをさらに深めるための関連記事です。ぜひあわせて参考にしてください。

13. まとめ:スリムになったLaravel 11で快適な開発を体験しよう

Laravel 11は、不要なボイラープレートを排除し、コードの見通しと開発者体験(DX)を飛躍的に向上させた素晴らしいメジャーバージョンです。

✅ Laravel 11 開発のチェックリスト:

  • 設定やミドルウェアの登録は bootstrap/app.php で行う
  • API構築時は php artisan install:api を実行する
  • タスクスケジュールは routes/console.php に記述する
  • モデルの型キャストは protected function casts(): array を活用する
  • 設定を変更したい時は php artisan config:publish を利用する
  • 標準搭載の /up で手軽にヘルスチェックを行う

洗練されたLaravel 11の機能をフル活用して、保守性が高くスピーディなWebアプリケーション開発を進めていきましょう!

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする

コメント