芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/xmintal-back/vendor/yiisoft/yii2/db/ColumnSchema.php
* @since 2.0 */ class ColumnSchema extends BaseObject { /** * @var string name of this column (without quotes). */ public $name; /** * @var bool whether this column can be null. */ public $allowNull; /** * @var string abstract type of this column. Possible abstract types include: * char, string, text, boolean, smallint, integer, bigint, float, decimal, datetime, * timestamp, time, date, binary, and money. */ public $type; /** * @var string the PHP type of this column. Possible PHP types include: * `string`, `boolean`, `integer`, `double`, `array`. */ public $phpType; /** * @var string the DB type of this column. Possible DB types vary according to the type of DBMS. */ public $dbType; /** * @var mixed default value of this column */ public $defaultValue; /** * @var array enumerable values. This is set only if the column is declared to be an enumerable type. */ public $enumValues; /** * @var int display size of the column. */ public $size; /** * @var int precision of the column data, if it is numeric. */ public $precision; /** * @var int scale of the column data, if it is numeric. */ public $scale; /** * @var bool whether this column is a primary key */ public $isPrimaryKey; /** * @var bool whether this column is auto-incremental */ public $autoIncrement = false; /** * @var bool whether this column is unsigned. This is only meaningful * when [[type]] is `smallint`, `integer` or `bigint`. */ public $unsigned; /** * @var string comment of this column. Not all DBMS support this. */ public $comment; /** * Converts the input value according to [[phpType]] after retrieval from the database. * If the value is null or an [[Expression]], it will not be converted. * @param mixed $value input value * @return mixed converted value */ public function phpTypecast($value) { return $this->typecast($value); } /** * Converts the input value according to [[type]] and [[dbType]] for use in a db query. * If the value is null or an [[Expression]], it will not be converted. * @param mixed $value input value * @return mixed converted value. This may also be an array containing the value as the first element * and the PDO type as the second element. */ public function dbTypecast($value) { // the default implementation does the same as casting for PHP, but it should be possible // to override this with annotation of explicit PDO type. return $this->typecast($value); } /** * Converts the input value according to [[phpType]] after retrieval from the database. * If the value is null or an [[Expression]], it will not be converted. * @param mixed $value input value * @return mixed converted value * @since 2.0.3 */ protected function typecast($value) { if ($value === '' && !in_array( $this->type, [ Schema::TYPE_TEXT, Schema::TYPE_STRING, Schema::TYPE_BINARY, Schema::TYPE_CHAR ], true) ) { return null; } if ($value === null || gettype($value) === $this->phpType || $value instanceof ExpressionInterface || $value instanceof Query ) { return $value; } if (is_array($value) && count($value) === 2 && isset($value[1]) && in_array($value[1], $this->getPdoParamTypes(), true) ) { return new PdoValue($value[0], $value[1]); } switch ($this->phpType) { case 'resource': case 'string': if (is_resource($value)) { return $value; } if (is_float($value)) { // ensure type cast always has . as decimal separator in all locales return StringHelper::floatToString($value); } if (is_numeric($value) && ColumnSchemaBuilder::CATEGORY_NUMERIC === ColumnSchemaBuilder::$typeCategoryMap[$this->type] ) { // https://github.com/yiisoft/yii2/issues/14663 return $value; } if (PHP_VERSION_ID >= 80100 && is_object($value) && $value instanceof \BackedEnum) { return (string) $value->value; } return (string) $value; case 'integer': if (PHP_VERSION_ID >= 80100 && is_object($value) && $value instanceof \BackedEnum) { return (int) $value->value; } return (int) $value; case 'boolean': // treating a 0 bit value as false too // https://github.com/yiisoft/yii2/issues/9006 return (bool) $value && $value !== "\0"; case 'double': return (float) $value; } return $value; } /** * @return int[] array of numbers that represent possible PDO parameter types */ private function getPdoParamTypes() { return [\PDO::PARAM_BOOL, \PDO::PARAM_INT, \PDO::PARAM_STR, \PDO::PARAM_LOB, \PDO::PARAM_NULL, \PDO::PARAM_STMT]; } }