Laravel5.1入門その4
Laravelは5になってからPSR-4に沿うようになったので、appディレクトリの下を自由に使うのが良いらしい。
APIとデバッグ用のページと管理者用のページを作る時にどうするかなと思って、まずやってみた。
Controllerの下にApi、Debug、Adminの名前空間を掘って、それぞれのリクエスト共通のBaseControllerを作る。
$ php artisan make:controller Debug\\BaseController $ php artisan make:controller Admin\\BaseController $ php artisan make:controller Api\\BaseController
ログイン用のコントローラもそれぞれ作る。
$ php artisan make:controller Debug\\SessionController $ php artisan make:controller Admin\\SessionController
APIのテスト用コントローラ。
$ php artisan make:controller Api\\PingController
デバッグ用ページのBaseController。
昨日作ったFirefoxのみ許可するミドルウェアをつけてみる。
app/Http/Kernel.php
protected $middleware = [];
protected $routeMiddleware = [
'firefox' => \App\Http\Middleware\AuthenticateUserAgent::class,
];
app/Http/Controllers/Debug/BaseController.php
<?php namespace App\Http\Controllers\Debug; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class BaseController extends Controller { public function __construct() { $this->middleware('firefox'); } }
app/Http/Controllers/Debug/SessionController.php
<?php namespace App\Http\Controllers\Debug; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Debug; class SessionController extends BaseController { /** * Display a listing of the resource. * * @return Response */ public function index() { return view('debug.index'); } }
同じようなことをAdminもする。
ビューを用意。
resources/views/debug/index.blade.php
<html><h1>debug dayo</h1></html>
resources/views/admin/index.blade.php
<html><h1>admin dayo</h1></html>
最後にルーティング。
app/Http/routes.php
<?php Route::get('/debug', 'Debug\SessionController@index'); Route::get('/admin', 'Admin\SessionController@index');
http://localhost/debug にFirefoxでアクセス。
debug dayo と出る。
特定のURL(/debugがつくURLとか)の時にだけ動くミドルウェアは、こんな感じでしか作れないのかな。