アクション名の決定方法を変えてみた

アクション名の決定方法を変更する

やっぱり
/?action_hogehoge=true
がイマイチ馴染めないので、今まで使っていた
/?action=hogehoge
形式で、かつPOST時にsubmitボタン毎にアクションを振り分けられる様に
Ethna_Controller::_getActionName_Form()
を変えてみた。*1

<?php
//...
function _getActionName_Form()
{
    $action_prefix = "action";//event,act,...

    if (isset($_SERVER['REQUEST_METHOD']) == false) {
        return null;
    }

    if ($_SERVER['REQUEST_METHOD'] == "GET") {
        $tmp_vars = $_GET;
    } else if ($_SERVER['REQUEST_METHOD'] == "POST") {
        $tmp_vars = $_POST;
    }

    if (array_key_exists($action_prefix, $tmp_vars) && is_array($tmp_vars[$action_prefix])) {
        return array_shift(array_keys($tmp_vars[$action_prefix]));
    } elseif (array_key_exists($action_prefix, $tmp_vars) && $tmp_vars[$action_prefix] != '') {
        return $tmp_vars[$action_prefix];
    } else {
        return null;
    }
}

取り合えずこれでGET時の
?action=hogehoge
動作実現と同時に

<input type="submit" name="action[hogehoge]" value="ほげ">
<input type="submit" name="action[fugafuga]" value="ふが">

でApp_Action_Hogehoge(),App_Action_Fugafuga()のアクション振り分けが出来た。
異常時チェックが甘い気がするので後で用確認。

*1:まだ動作全容を把握出来ていないうちに手を付けるのがそこかよ