/** * Generate arguments for method * * @param MethodDefinition $methodDefinition * @return string * @throws ReferenceNotImplementsException */ protected function generateArguments(MethodDefinition $methodDefinition) : string { $parameterCollection = $methodDefinition->getParametersCollection(); // If arguments more than one then generate this ones on new line $newLinePrefix = count($parameterCollection) > 1 ? "\n\t\t\t\t" : ''; $arguments = ''; // Iterate all parameters and generate arguments foreach ($parameterCollection as $parameterDefinition) { $dependencyValue = $this->resolveDependency($parameterDefinition->getDependency()); $arguments .= $newLinePrefix . "{$dependencyValue},"; } // Remove comma if (count($parameterCollection)) { $arguments = rtrim($arguments, ','); } // Add tabs if (count($parameterCollection) > 1) { $arguments .= "\n\t\t\t"; } return $arguments; }