search
LoginSignup
118

More than 5 years have passed since last update.

posted at

updated at

Laravelで名前空間を指定してオートロードされなかったら見る場所。

autoload_classmap.php

Laravelで名前空間指定したはいいがClass Not Foundが出て分からなくなった方は、一度vendor/composer/autoload_classmap.phpというファイルを見てみるといいと思います。
オートロードするファイルの配列が作られています。
キーがnamespaceで値がパスになっております。

vendor/composer/autoload_classmap.php
<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'BaseController' => $baseDir . '/app/controllers/BaseController.php',
    'DatabaseSeeder' => $baseDir . '/app/database/seeds/DatabaseSeeder.php',
    'HomeController' => $baseDir . '/app/controllers/HomeController.php',
    'LaravelTest\\Controllers\\UserController' => $baseDir . '/app/controllers/UserController.php',
    'LaravelTest\\Models\\User' => $baseDir . '/app/models/User.php',
    'TestCase' => $baseDir . '/app/tests/TestCase.php'
);

dump-autoload

名前空間を新たに記述した時はコマンドを叩いてautoload_classmap.phpを更新します。

% composer dump-autoload

composer.json

オートロードはcomposer.jsonのautoloadに記述してあります。

composer.json
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations",
            "app/database/seeds",
            "app/tests/TestCase.php"
        ]
    },

Class '\User' not found

まじめに名前空間を指定しようとしてデフォルトで存在しているModels/User.phpなんかに名前空間指定するといろんなところでエラーになると思います。
コントローラーはすぐ気づきやすいのですがconfig/auth.phpは気づかず少しはまりました。

app/config/auth.php
'model' => 'User', // 'model' => 'App\Models\User',

ええ、私はモダンな方のPHPerに近づきたいがために名前空間に躍起なったのでありました。

基本クラスのエイリアス。

config/app.phpに書いてあるものは
use Input;
use Validator;
use DB;
と短く書けばいいのでここもさらっと見ておいてもいいかも。

app/config/app.php
    'aliases' => array(

        'App'               => 'Illuminate\Support\Facades\App',
        'Artisan'           => 'Illuminate\Support\Facades\Artisan',
        'Auth'              => 'Illuminate\Support\Facades\Auth',
        'Blade'             => 'Illuminate\Support\Facades\Blade',
        'Cache'             => 'Illuminate\Support\Facades\Cache',
        'ClassLoader'       => 'Illuminate\Support\ClassLoader',
        'Config'            => 'Illuminate\Support\Facades\Config',
        'Controller'        => 'Illuminate\Routing\Controller',
        'Cookie'            => 'Illuminate\Support\Facades\Cookie',
        'Crypt'             => 'Illuminate\Support\Facades\Crypt',
        'DB'                => 'Illuminate\Support\Facades\DB',
        'Eloquent'          => 'Illuminate\Database\Eloquent\Model',
        'Event'             => 'Illuminate\Support\Facades\Event',
        'File'              => 'Illuminate\Support\Facades\File',
        'Form'              => 'Illuminate\Support\Facades\Form',
        'Hash'              => 'Illuminate\Support\Facades\Hash',
        'HTML'              => 'Illuminate\Support\Facades\HTML',
        'Input'             => 'Illuminate\Support\Facades\Input',
        'Lang'              => 'Illuminate\Support\Facades\Lang',
        'Log'               => 'Illuminate\Support\Facades\Log',
        'Mail'              => 'Illuminate\Support\Facades\Mail',
        'Paginator'         => 'Illuminate\Support\Facades\Paginator',
        'Password'          => 'Illuminate\Support\Facades\Password',
        'Queue'             => 'Illuminate\Support\Facades\Queue',
        'Redirect'          => 'Illuminate\Support\Facades\Redirect',
        'Redis'             => 'Illuminate\Support\Facades\Redis',
        'Request'           => 'Illuminate\Support\Facades\Request',
        'Response'          => 'Illuminate\Support\Facades\Response',
        'Route'             => 'Illuminate\Support\Facades\Route',
        'Schema'            => 'Illuminate\Support\Facades\Schema',
        'Seeder'            => 'Illuminate\Database\Seeder',
        'Session'           => 'Illuminate\Support\Facades\Session',
        'SoftDeletingTrait' => 'Illuminate\Database\Eloquent\SoftDeletingTrait',
        'SSH'               => 'Illuminate\Support\Facades\SSH',
        'Str'               => 'Illuminate\Support\Str',
        'URL'               => 'Illuminate\Support\Facades\URL',
        'Validator'         => 'Illuminate\Support\Facades\Validator',
        'View'              => 'Illuminate\Support\Facades\View',

    ),

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
118