Example #1
0
 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)];
     }, []);
 }
Example #2
0
 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})];
     }, []);
 }
Example #3
0
 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;
 }
Example #4
0
 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;
         }
     }, []);
 }
Example #5
0
 protected function expandValuesInternal(array $availableParams, $name, $val, CaseSensor $sensor)
 {
     return [$sensor->convert($name) => $val];
 }
Example #6
0
 private function convertNames(array $fields, CaseSensor $sensor)
 {
     return array_map(function ($f) use($sensor) {
         return $sensor->convert($f);
     }, $fields);
 }