callback = $callback; $this->original = $original; } public function invoke($apiRequest) { // $continue = function($a) { return $this->original->invoke($a); }; $continue = [$this->original, 'invoke']; return call_user_func($this->callback, $apiRequest, $continue); } public function getEntityNames($version) { // return $version == $this->version ? [$this->entity] : []; throw new \API_Exception("Not support: WrappingProvider::getEntityNames()"); } public function getActionNames($version, $entity) { // return $version == $this->version && $this->entity == $entity ? [$this->action] : []; throw new \API_Exception("Not support: WrappingProvider::getActionNames()"); } }