Cake3で「rake Routes」を実現するプラグイン

Consoleからroutes.phpの設定を確認したい

Laravelの”php artisan route:list“やRailsの”rake routes“がとっても便利だと思って、 Cakeで同じようなコマンドがないかを見ていたのですが、どうやらなさそうなので軽く実装してみました。

そんな感じで生まれたのがこのプラグインです。

下記URLがリポジトリになっているので、気に入ったら使ってみてください。 https://github.com/webuilder240/cake-console-routes

名前はCakeConsleRoutesにしてあります。

使い方

1
composer require webuilder240/cake-console-routes --dev

ただのShellだけのプラグインなので、bootstrap_cli.phpに設定を追加してあげましょう。 (正直なところ、これめんどくさいので、なんとかならないかな)

bootstrap_cli.php
1
2
3
if (Configure::read('debug')) {
  Plugin::load('CakeConsoleRoutes');
}

あとは下記コマンドを投げるだけで、確認することが出来るようになります。 ここではちょっと崩れて見えていますが、本当はもう少し綺麗に出ます。

1
2
3
4
5
6
7
8
bin/cake routes
         Method  URI Pattern           Controller/Action     extensions
            GET  /                     Pages/display         none
            GET  /api/v1/posts         Posts/index           json,xml
           POST  /api/v1/posts         Posts/add             json,xml
            GET  /api/v1/posts/:id     Posts/view            json,xml
      PUT,PATCH  /api/v1/posts/:id     Posts/edit            json,xml
         DELETE  /api/v1/posts/:id     Posts/delete          json,xml

後述するけど、色々実装するにあたって、まずい感じになっているので、何とかしたいところ。

これからの課題について

  • Pluginに存在しているconfig/routes.phpを削除しないといけない。(これがないとエラー吐く)
  • extensionsをチェックできるようにする
  • Pluginのルーティングもサポートする(そもそも確認してない)
  • UnitTestの追加
  • config/routes.phpをincludeで読んでいるので、テストしづらい。