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