この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2026-06-11 07:07:02

タイトル: アプリケーション名の変更
SEOタイトル: Laravel アプリケーション名 (namespace / APP_NAME) の変更方法|5.6 以前 vs 5.7 以降

この記事の要点
  • Laravel のアプリケーション名(namespace / 表示名)を変更する方法
  • Laravel 5.6 以前: php artisan app:name MyShop(namespace を一括書き換え)
  • Laravel 5.7 以降: app:name 廃止 → .envAPP_NAME 編集 + php artisan config:clear
  • config/app.php 経由で参照される表示名のみ変わり、namespace は手動変更が必要
  • namespace 変更は composer.jsonautoload.psr-4 も連動して更新

「アプリケーション名」の 2 つの意味

Laravel のアプリケーション名と言うとき、文脈で 2 つの意味があります:

表示名 (APP_NAME)PHP namespace
場所.envAPP_NAME / config('app.name')PHP クラスの namespace App;
用途メール / ページタイトル / UI 表示クラス参照(App\Models\User
変更難易度簡単(1 行書換え)大変(全ファイル書換え)

表示名 (APP_NAME) の変更

.env ファイルの APP_NAME を編集するだけ:

# 1. .env を編集
APP_NAME="MyShop"
# スペースを含むなら必ずダブルクォートで囲む
APP_NAME="My Awesome Shop"

# 2. キャッシュをクリア(重要!.env はキャッシュされる)
php artisan config:clear

# 3. 動作確認
php artisan tinker
>>> config('app.name')
=> "MyShop"

この値は config/app.php 経由で参照されます:

// config/app.php
return [
    'name' => env('APP_NAME', 'Laravel'),  // ← APP_NAME が無いと 'Laravel'
    ...
];

// 各所での参照
config('app.name');         // controller / service
{{ config('app.name') }}    // Blade テンプレート
@yield('title') | {{ config('app.name') }}  // タイトル装飾

namespace の変更(Laravel 5.6 以前)

古い Laravel(5.6 まで)には専用 artisan コマンドがありました:

# 既定の App namespace を MyShop に一括変更
php artisan app:name MyShop

# 変更されるもの:
#   - composer.json の autoload.psr-4
#   - config/app.php の providers / aliases パス
#   - app/Console/Kernel.php / Http/Kernel.php の use 文
#   - app/Models/*.php / Http/Controllers/*.php の namespace 宣言
#   - bootstrap/app.php の Application インスタンス生成

実行後は composer autoload を再生成:

composer dump-autoload
php artisan config:clear
php artisan cache:clear

namespace の変更(Laravel 5.7 以降)

Laravel 5.7 で app:name コマンドは削除されたため、namespace を変更したい場合は手動で行います:

  1. composer.jsonautoload.psr-4 を変更
    "autoload": {
        "psr-4": {
            "MyShop\\": "app/"   ← App\\ から MyShop\\ に
        }
    }
  2. app/ 配下の全 PHP ファイルnamespace App;use App\...MyShop に置換
    • VS Code: Ctrl+Shift+H で namespace Appnamespace MyShop 一括置換
    • 同様に use App\\use MyShop\\
    • \App\\ (バックスラッシュ付き参照)も忘れず
  3. config/app.php の providers / aliases のパスを更新
  4. bootstrap/app.php の Application 設定確認
  5. composer dump-autoload 実行
  6. php artisan config:clear + キャッシュクリア

実用上のおすすめ: namespace は触らない

多くのケースで namespace 変更の必要はありません:

  • App\\ のままでも Laravel は問題なく動く
  • 表示名だけ変えたいなら APP_NAME 編集で十分
  • namespace 変更はパッケージ依存・サードパーティライブラリと相性が悪い
  • 大規模プロジェクトでも App\\Domains\\Shop\\ のようにサブ namespace で組織化する方が一般的

動作確認

# 表示名の確認
php artisan tinker
>>> config('app.name')

# namespace の確認
>>> get_class(new \App\Models\User)
# または変更後
>>> get_class(new \MyShop\Models\User)

# Web ブラウザでアクセスして 500 エラーが出ないこと
php artisan serve

関連

  • サイト URL の変更: APP_URL=https://example.com も .env で変更
  • 多言語化: resources/lang/ja/messages.php でアプリ名の翻訳を管理
  • テスト: phpunit で $this->assertEquals('MyShop', config('app.name'))
  • Laravel 公式推奨: namespace は変えず、APP_NAME のみで対応するのがメンテナンスが楽