+ private function getCallbackReturnList($service, $method, $args)
+ {
+ if ($args != null) {
+ $parsedArgs = json_decode($args, true);
+ if (!is_array($parsedArgs)) {
+ $parsedArgs = explode(",", $args);
+ }
+ } else {
+ $parsedArgs = null;
+ }
+ $serviceInstance = \Drupal::service($service);
+
+ if (!method_exists($serviceInstance, $method)) {
+ throw new \Symfony\Component\DependencyInjection\Exception\BadMethodCallException($this->trans('commands.container.debug.errors.method_not_exists'));
+
+ return $serviceDetail;
+ }
+ $serviceDetail[] = [
+ '<fg=green>'.$this->trans('commands.container.debug.messages.service').'</>',
+ '<fg=yellow>'.$service.'</>'
+ ];
+ $serviceDetail[] = [
+ '<fg=green>'.$this->trans('commands.container.debug.messages.class').'</>',
+ '<fg=yellow>'.get_class($serviceInstance).'</>'
+ ];
+ $methods = [$method];
+ $this->extendArgumentList($serviceInstance, $methods);
+ $serviceDetail[] = [
+ '<fg=green>'.$this->trans('commands.container.debug.messages.method').'</>',
+ '<fg=yellow>'.$methods[0].'</>'
+ ];
+ if ($parsedArgs) {
+ $serviceDetail[] = [
+ '<fg=green>'.$this->trans('commands.container.debug.messages.arguments').'</>',
+ json_encode($parsedArgs, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
+ ];
+ }
+ $return = call_user_func_array([$serviceInstance,$method], $parsedArgs);
+ $serviceDetail[] = [
+ '<fg=green>'.$this->trans('commands.container.debug.messages.return').'</>',
+ json_encode($return, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)
+ ];
+ return $serviceDetail;
+ }