action = $data['action']; unset($data['action']); $this->model = $model_class::findOne($id); if(!empty($data)) { $this->data = $data; } return $this; } function apply() { if($this->data === null) { return call_user_func_array( array($this->model, $this->action), array() ); } else { return call_user_func_array( array($this->model, $this->action), array($this->data) ); } } }