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

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

```lang: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を更新します。

<pre>% composer dump-autoload</pre>

## 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',

	),
```