新規プロジェクトで 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 は PHP 5.5.9 で利用できず。)

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

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

Amazonで詳細を見る

PHPフレームワーク Laravel入門

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

Amazonで詳細を見る

初めてのPHP

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

Amazonで詳細を見る