Webサービスや管理システムを作っていると、ページ数やコントローラーのメソッドが多くなり、
routesファイルが肥大し、管理が難しくなる時があります。

今回はLaravelとLumenの両方で、
routes.phpを複数のファイルに分割する方法を説明します。
( 共に環境は5.1を使っています )


Larvelでroutesファイルの分割

Laravelでroutesファイルの管理は、app/Providersフォルダの中の
RouteServiceProvider.php内のmap関数の中で管理されています。

特別な処理を書く必要はなく、map関数内に読み込みたいrouteファイルを定義するだけです。

// app/Providers/RoleServiceProvider.php

public function map(Router $router)
{
	$router->group(['namespace' => $this->namespace], function($router)
	{
		// デフォルトのルートファイル
		require app_path('Http/routes.php');

		// routeファイルを追加
		require app_path('Http/ajaxRoutes.php');

	});
}

以上で完了です。
app/Httpフォルダ内のajaxRoutes.phpファイルをルートとして読み込む処理を書きました。

 

Lumenでroutesファイルの分割

Lumenの場合はLaravelとは違い、
bootstrapフォルダのapp.phpにルートの処理が記述されています。

手順はLaravelと同様で、読み込みたいルートファイルを追加するだけです。

// bootstrap/app.php

$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
    // デフォルトのルートファイル
    require __DIR__ . '/../app/Http/routes.php';

    // ルートファイルを新たに追加
    require __DIR__ . '/../app/Http/ajaxRoutes.php';
});

以上で完了です。

システム内で複数のアプリケーションを作っている場合や、
ajaxの処理の際にroutesを別のファイルに分離したい時に便利です。

 

この記事のカテゴリ

プログラミング

この記事のタグ

Laravel , Lumen , PHP

Socialシェアボタン

スポンサーリンク