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

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

Laravel インストール直後のTOP画面
Laravel インストール直後のTOP画面

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

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

と思ったら あるはずの場所に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はそれぞれルートグループが定義されていることが分かります。

 1// RouteServiceProvider抜粋
 2protected function mapWebRoutes()
 3{
 4    Route::group([
 5        'middleware' => 'web',
 6        'namespace' => $this->namespace,
 7    ], function ($router) {
 8        require base_path('routes/web.php');
 9    });
10}
11protected function mapApiRoutes()
12{
13    Route::group([
14        'middleware' => 'api',
15        'namespace' => $this->namespace,
16        'prefix' => 'api',
17    ], function ($router) {
18        require base_path('routes/api.php');
19    });
20}
21

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本が出るようですね!
英語ですが、ぜひ予約してください。


PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

竹澤 有貴,栗生 和明,新原 雅司,大村 創太郎
出版社:ソシム  発売日:2018-09-26

Amazonで詳細を見る

PHPフレームワーク Laravel入門

掌田津耶乃
出版社:秀和システム  発売日:2017-09-16

Amazonで詳細を見る

初めてのPHP

David Sklar
出版社:オライリージャパン  発売日:2017-03-18

Amazonで詳細を見る