private function convertResultBuiltin($results, AbstractPlatform $platform, CaseSensor $sensor) { return array_reduce(array_keys($results), function (array &$tmp, $k) use($results, $platform, $sensor) { $n = $sensor->convert($k); return $tmp + [$n => $this->child->convertResults($results[$k], $platform, $sensor)]; }, []); }
private function expand($name, $val, CaseSensor $sensor, callable $fn) { return array_reduce(array_keys($this->fields), function (array &$tmp, $k) use($name, $val, $sensor, $fn) { $n = $name !== '' ? $sensor->convert($name, $k) : $k; return $tmp + [$k => $fn($this->fields[$k], $name, $val->{$k})]; }, []); }
private function resolveName(array $availables, $baseName, array $subNames, CaseSensor $sensor) { foreach ($subNames as $name) { $n = $sensor->convert($baseName, $name); if (isset($availables[$n])) { return $n; } } return false; }
private function parseReturning(AbstractCommandAnnotation $annotation = null) { if ($annotation === null || ($names = $annotation->returning) == null) { return []; } if (is_int(key($names))) { throw new \LogicException('Type name is not specified. (returning={<name>"="<type>", ...})'); } $types = ['int' => \PDO::PARAM_INT, 'string' => \PDO::PARAM_STR]; $defaultLen = ['int' => strlen((string) PHP_INT_MAX) + 1, 'string' => 1024]; $pattern = '/^(?<type>.+?)(\\((?<length>\\d+)\\))?$/'; return array_reduce(array_keys($names), function (array &$tmp, $name) use($names, $pattern, $types, $defaultLen) { $type = $names[$name]; if (preg_match_all($pattern, $type, $m) !== false) { return $tmp + [$this->paramCaseSensor->convert($name) => ['typeName' => $m['type'][0], 'type' => $types[$m['type'][0]], 'length' => $m['length'][0] !== '' ? (int) $m['length'][0] : $defaultLen[$m['type'][0]]]]; } else { return $tmp; } }, []); }
protected function expandValuesInternal(array $availableParams, $name, $val, CaseSensor $sensor) { return [$sensor->convert($name) => $val]; }
private function convertNames(array $fields, CaseSensor $sensor) { return array_map(function ($f) use($sensor) { return $sensor->convert($f); }, $fields); }