1

PHP アプリケーションでは、クラス階層を作成できます

class UserController  extends Controller {
    public function __constructor(){
        //..
    }
}

class LoggedUserController  extends UserController  {
    protected $_loggedUser;
    public function __constructor(){
        if( empty($_SESSION['user']) ){
            die('Access denied');
        }
        else{
            $this->_loggedUser = $_SESSION['user'];
        }
    }
}

class MessagesController  extends LoggedUserController {
    public function action_get_all(){
        // here I can use $this->_loggedUser and be sure that it is not empty
        //  Something like that:
        $messages = ORM::factory('messages')->where('user_id', '=', $this->_loggedUser->id)->find_all();
    }
}

同じ方法で、クラス AdminUserController を作成し、管理者以外のユーザーがコントローラーを使用できないようにします。

しかし、Node.js では、アプリケーションのロード時にコントローラーのコンストラクターが 1 回だけ呼び出されるため、このトリックを使用できません。

Node.jsでこれを実現する方法があるのではないでしょうか?

4

1 に答える 1