新規プロジェクトでLaravelを使おうと調べてみると、2016年08月23日にLaravel 5.3がリリースされていました!

まずは動かしてみましょう。 composer installしてLaravelの応答を確認します。

シンプルで素敵なデザイン。

問題ありませんね。
ではガシガシコードを書いていきましょう。

と思ったら あるはずの場所にroutes.phpがありません

routesの引っ越し先

Laravelのルーティングといえばapp/Http/routes.phpですが、いくらHttp以下を見直してもやっぱりroutes.phpはありません。

ドキュメントを探し、Routingのページを読んでみると一発解決。

The Default Route Files
All Laravel routes are defined in your route files, which are located in the routes directory.
https://laravel.com/docs/5.3/routing

確かに、新しくプロジェクト直下にroutesディレクトリが追加されています。
その下には次の3ファイルがありますよ。

  • routes/api.php
  • routes/console.php
  • routes/web.php

なるほど、あらかじめインターフェース別にファイルを分けて制御を容易にしようということですね。
デフォルトでこのような整理がされているのはとても良いと思います。

RouteServiceProvider

App\Providers\RouteServiceProviderを読むと、web/apiはそれぞれルートグループが定義されていることが分かります。

// RouteServiceProvider抜粋
protected function mapWebRoutes()
{
    Route::group([
        'middleware' => 'web',
        'namespace' => $this->namespace,
    ], function ($router) {
        require base_path('routes/web.php');
    });
}
protected function mapApiRoutes()
{
    Route::group([
        'middleware' => 'api',
        'namespace' => $this->namespace,
        'prefix' => 'api',
    ], function ($router) {
        require base_path('routes/api.php');
    });
}

middlewareと、api側にはprefixが設定されています。

ルーティングの追加

通常のWebページ

従来通りroutes/web.phpに追加していけば問題ありませんでした。

Api

routes/api.phpにはプリフィックスapiが付加されています。
具体的に、[/user/get]と書いた場合は[/api/user/get]にアクセスすればOKです。

まとめ

Laravel 5.3のルーティングはroutes/api.phpで定義します!

おわりに

一番最後になってしまいましたが、Larabel 5.3から 要求PHPバージョンが5.6.4以上 にアップしました。
PHPバージョンにはご注意ください。

(Cloud9のApache+PHPはPHP5.5.9で利用できず。)

また、11月にはオライリーからLaravel本が出るようですね!
英語ですが、ぜひ予約してください。

この記事はtomita@atuwebがお届けしました。