public static function castArray($collection, $dimSpec = NULL) { if ($collection instanceof \Doctrine\Common\Collections\Collection) { $collection = $collection->toArray(); } if ($dimSpec === NULL) { return (array) $collection; } // fastcheck if (is_string($dimSpec)) { $dimSpec = array('dim1' => $dimSpec); } else { $dimSpec = (array) $dimSpec; } if (isset($dimSpec['dim1'])) { foreach ($collection as $item) { if (Code::getType($item) != $dimSpec['dim1']) { throw new \Psc\Exception('Im Array ist nur Type: ' . $dimSpec['dim1'] . ' erlaubt. Failed für Array: ' . self::varInfo($collection)); } } } return (array) $collection; }
/** * @return string wird mit $quote umgeben sein */ public static function convertValue($data, $quote = self::QUOTE_SINGLE) { if ($data === NULL) { return 'null'; } if ($data === array()) { return '[]'; } if ($data instanceof \Psc\JS\Expression) { return $data->JS(); } if ($data instanceof \Psc\PHPJS\CompilerObject) { $object = $data; return $object->convert(); } switch (C::getType($data)) { case 'int': return $data; case 'bool': return $data == TRUE ? 'true' : 'false'; case 'array': return self::convertArray($data, $quote); case 'object': case 'object:stdClass': return self::convertHashmap($data, $quote); // wieder in converthashmap geändert (nicht mehr json_encode(), weil hier \Psc\JS\Code in {} umgewandelt wurde) // wieder in converthashmap geändert (nicht mehr json_encode(), weil hier \Psc\JS\Code in {} umgewandelt wurde) case 'string': case 'unknown type': case 'float': // php tut hier das richtige für uns return self::convertString((string) $data, $quote); case 'resource': default: return 'null'; } }
/** * @params array */ public static function create() { $args = func_get_args(); if (count($args) === 1 && is_array($args[0])) { return static::createFromStruct($args[0]); } $signatur = array(); foreach ($args as $arg) { $signatur[] = Code::getType($arg); } throw new \BadMethodCallException('Es wurde keine Create-Methode für die Parameter: ' . implode(', ', $signatur) . ' gefunden'); }