3

レストサービスを作成しています。私は必要なすべてのメソッドを実行しました。私がやりたいのは、いくつかの承認です。APIキーを保存するテーブルを作成し、各メソッドにロードしましたが、非常にうまく機能しています。今必要なのは、各メソッドの前に呼び出されるアクションの前に実行することです。そのため、各メソッドでユーザーが正常に承認されているかどうかを確認する必要はありませんか? 以前はパブリック関数を使用して実行できる単純な CI_Controller または FuelPHP で、REST_Controller で同じことを達成する方法がわかりませんか?

前もって感謝します

4

1 に答える 1

1

これが2つのコントローラーです。あなたにいくつかのアイデアを与えるかもしれません

class MY_Controller extends CI_Controller 
{
    protected $before_filter    =   array();
    protected $after_filter     =   array();    

    private function run_filter($who, $params=array()) 
    {
        $filter =   $this->{"{$who}_filter"};

        if (is_string($filter)) {
            $filter =   array($filter);
        }

        if (method_exists($this, "{$who}_filter")) {
            $filter[]   =   "{$who}_filter";
        }

        foreach ($filter as $method) {
            call_user_func_array(array($this, $method), $params);
        }
    }
    public function _remap($method, $parameters)
    {
        if (method_exists($this, $method))
        {
            $this->run_filter('before', $parameters);
            $return =   call_user_func_array(array($this, $method),$parameters);
            $this->run_filter('after', $parameters);    
        }else{
            show_404();
        }
    }   
}

class MY_Controller extends CI_Controller 
{
    public $before_filter   =   array('check_login');
    public $after_filter        =   array();    

    private function dashboard() 
    {
        /*  other code here */
    }

    public function check_login() 
    {
        /*  Login checking Code here    */
    }   
}
于 2012-11-15T05:43:36.243 に答える