Viewing file: ColumnTypeGuesser.php (3.43 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Faker\ORM\Propel2;
use Propel\Generator\Model\PropelTypes; use Propel\Runtime\Map\ColumnMap;
class ColumnTypeGuesser { protected $generator;
public function __construct(\Faker\Generator $generator) { $this->generator = $generator; }
/** * @return \Closure|null */ public function guessFormat(ColumnMap $column) { $generator = $this->generator;
if ($column->isTemporal()) { if ($column->getType() == PropelTypes::BU_DATE || $column->getType() == PropelTypes::BU_TIMESTAMP) { return static function () use ($generator) { return $generator->dateTime; }; }
return static function () use ($generator) { return $generator->dateTimeAD; }; } $type = $column->getType();
switch ($type) { case PropelTypes::BOOLEAN: case PropelTypes::BOOLEAN_EMU: return static function () use ($generator) { return $generator->boolean; };
case PropelTypes::NUMERIC: case PropelTypes::DECIMAL: $size = $column->getSize();
return static function () use ($generator, $size) { return $generator->randomNumber($size + 2) / 100; };
case PropelTypes::TINYINT: return static function () use ($generator) { return $generator->numberBetween(0, 127); };
case PropelTypes::SMALLINT: return static function () use ($generator) { return $generator->numberBetween(0, 32767); };
case PropelTypes::INTEGER: return static function () use ($generator) { return $generator->numberBetween(0, 2147483647); };
case PropelTypes::BIGINT: return static function () use ($generator) { return $generator->numberBetween(0, PHP_INT_MAX); };
case PropelTypes::FLOAT: case PropelTypes::DOUBLE: case PropelTypes::REAL: return static function () use ($generator) { return $generator->randomFloat(); };
case PropelTypes::CHAR: case PropelTypes::VARCHAR: case PropelTypes::BINARY: case PropelTypes::VARBINARY: $size = $column->getSize();
return static function () use ($generator, $size) { return $generator->text($size); };
case PropelTypes::LONGVARCHAR: case PropelTypes::LONGVARBINARY: case PropelTypes::CLOB: case PropelTypes::CLOB_EMU: case PropelTypes::BLOB: return static function () use ($generator) { return $generator->text; };
case PropelTypes::ENUM: $valueSet = $column->getValueSet();
return static function () use ($generator, $valueSet) { return $generator->randomElement($valueSet); };
case PropelTypes::OBJECT: case PropelTypes::PHP_ARRAY: default: // no smart way to guess what the user expects here return null; } } }
|