Вход Регистрация
Файл: vendor/fakerphp/faker/src/Faker/ORM/Propel2/ColumnTypeGuesser.php
Строк: 117
<?php

namespace FakerORMPropel2;

use 
PropelGeneratorModelPropelTypes;
use 
PropelRuntimeMapColumnMap;

class 
ColumnTypeGuesser
{
    protected 
$generator;

    public function 
__construct(FakerGenerator $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(0127);
                };

            case 
PropelTypes::SMALLINT:
                return static function () use (
$generator) {
                    return 
$generator->numberBetween(032767);
                };

            case 
PropelTypes::INTEGER:
                return static function () use (
$generator) {
                    return 
$generator->numberBetween(02147483647);
                };

            case 
PropelTypes::BIGINT:
                return static function () use (
$generator) {
                    return 
$generator->numberBetween(0PHP_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;
        }
    }
}
Онлайн: 0
Реклама