Chris@13: isDefaultValueAvailable()) { Chris@13: return []; Chris@13: } Chris@13: Chris@13: $defaultValue = $this->valueToShortString($parameter->getDefaultValue()); Chris@13: Chris@13: $parametersProcessed[] = "\${$parameter->getName()} = $defaultValue"; Chris@13: } Chris@13: Chris@13: if (empty($parametersProcessed)) { Chris@13: return []; Chris@13: } Chris@13: Chris@17: return [\implode(', ', $parametersProcessed) . ')']; Chris@13: } Chris@13: Chris@13: /** Chris@13: * Takes in the default value of a parameter and turns it into a Chris@13: * string representation that fits inline. Chris@13: * This is not 100% true to the original (newlines are inlined, for example). Chris@13: * Chris@13: * @param mixed $value Chris@13: * Chris@13: * @return string Chris@13: */ Chris@13: private function valueToShortString($value) Chris@13: { Chris@17: if (!\is_array($value)) { Chris@17: return \json_encode($value); Chris@13: } Chris@13: Chris@13: $chunks = []; Chris@13: $chunksSequential = []; Chris@13: Chris@13: $allSequential = true; Chris@13: Chris@13: foreach ($value as $key => $item) { Chris@17: $allSequential = $allSequential && \is_numeric($key) && $key === \count($chunksSequential); Chris@13: Chris@13: $keyString = $this->valueToShortString($key); Chris@13: $itemString = $this->valueToShortString($item); Chris@13: Chris@13: $chunks[] = "{$keyString} => {$itemString}"; Chris@13: $chunksSequential[] = $itemString; Chris@13: } Chris@13: Chris@13: $chunksToImplode = $allSequential ? $chunksSequential : $chunks; Chris@13: Chris@17: return '[' . \implode(', ', $chunksToImplode) . ']'; Chris@13: } Chris@13: }