CakePHP3のRouteクラス3種
CakePHP3でRouteクラスを利用してるのでしょうか?
Router::scope などはよく使うのですが、 DashedRoute 、 InflectedRoute 、 RedirectRoute は頻繁には利用せず毎回調べてるので備忘録程度に残しておきます。
ようはどういうURLでアクセスするかというやつですね。
DashedRoute
特に気にしていない場合は、DashedRouteを利用していると思います。
- アクセスするURL => /my-controller/my-action
- クラス => MyController::myAction
InflectedRoute
CakePHP2までと同じようなURLでアクセスしたい場合はこちらですね
- アクセスするURL => /my_controller/my_action
- クラス => MyController::myAction
RedirectRoute
これは少し毛色の違うRouteです。
特定のURLにアクセスされたら、別ページにRedirectしたい場合があると思います。
RedirectRouteを使えばRouteだけでRedirect可能です。
- アクセスするURL => /my-controller/my-action
- アクセスしたいURL => http://example.com
使い方
routes.php に記述するだけです。
$routes->connect('/', ['redirect' => 'http://example.com'], ['routeClass' => 'RedirectRoute']);
その他
全体をInflectedRouteにしたい
デフォルトのRouteを指定する
Router::defaultRouteClass(InflectedRoute::class);