示例#1
0
文件: Code.php 项目: pscheit/psc-cms
 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;
 }
示例#2
0
 /**
  * @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';
     }
 }
示例#3
0
文件: Set.php 项目: pscheit/psc-cms
 /**
  * @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');
 }