Ethnaのアクション指定パラメータって合理的

今までEthnaのindex.php?action_update=trueというようなアクション指定パラメータの形式には違和感があった。なんでindex.php?action=updateとかじゃないんだろう?って思ってたけど、この形式がとても便利だということに気が付いた。

index.php?action=updateのような形式だったとすると、フォームには

<form action="index.php">
  <input type="hidden" name="action" value="update" />
  <input type="submit" value="送信" />
</form>

のように、hiddenを使って次のアクションを指定してやる必要があるが、index.php?action_update=trueのような形式だと、

<form action="index.php">
  <input type="submit" name="action_update" value="送信" />
</form>

と、submitボタンのname属性を指定してやるだけでupdateアクションに送信できる。今までずっとhiddenで書くしかないと思ってたけど、こっちの方が簡潔でいいな。

ずらーっとチェックボックス付きのリストが並んでて、「チェックしたものをまとめて変更」と「チェックしたものをまとめて削除」のボタンを2つ配置してそれぞれ別アクションに処理させたいようなときにも効果を発揮。index.php?action=updateとかの形式だと、2つのボタンのうちどっちが押されてフォームが送信されたのかを判断するためには、JavaScriptを使うかAction内での処理の分岐が必要になるが、Ethnaデフォルトの形式だと

  <input type="submit" name="update" value="チェックしたものをまとめて更新" />
  <input type="submit" name="delete" value="チェックしたものをまとめて削除" />

で実行するActionを直接指定できて便利。