diff options
Diffstat (limited to 'framework/Testing/Data/Schema/TDbColumnSchema.php')
-rwxr-xr-x | framework/Testing/Data/Schema/TDbColumnSchema.php | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/framework/Testing/Data/Schema/TDbColumnSchema.php b/framework/Testing/Data/Schema/TDbColumnSchema.php deleted file mode 100755 index 92b7c0bd..00000000 --- a/framework/Testing/Data/Schema/TDbColumnSchema.php +++ /dev/null @@ -1,145 +0,0 @@ -<?php -/** - * TDbColumnSchema class file. - * - * @author Qiang Xue <qiang.xue@gmail.com> - * @link http://www.yiiframework.com/ - * @copyright Copyright © 2008-2009 Yii Software LLC - * @license http://www.yiiframework.com/license/ - */ - -prado::using('System.Testing.Data.Schema.TDbExpression'); - -/** - * TDbColumnSchema class describes the column meta data of a database table. - * - * @author Qiang Xue <qiang.xue@gmail.com> - * @version $Id: TDbColumnSchema.php 2679 2009-06-15 07:49:42Z Christophe.Boulain $ - * @package System.Testing.Data.Schema - * @since 1.0 - */ -class TDbColumnSchema extends TComponent -{ - /** - * @var string name of this column (without quotes). - */ - public $name; - /** - * @var string raw name of this column. This is the quoted name that can be used in SQL queries. - */ - public $rawName; - /** - * @var boolean whether this column can be null. - */ - public $allowNull; - /** - * @var string the DB type of this column. - */ - public $dbType; - /** - * @var string the PHP type of this column. - */ - public $type; - /** - * @var mixed default value of this column - */ - public $defaultValue; - /** - * @var integer size of the column. - */ - public $size; - /** - * @var integer precision of the column data, if it is numeric. - */ - public $precision; - /** - * @var integer scale of the column data, if it is numeric. - */ - public $scale; - /** - * @var boolean whether this column is a primary key - */ - public $isPrimaryKey; - /** - * @var boolean whether this column is a foreign key - */ - public $isForeignKey; - - - /** - * Initializes the column with its DB type and default value. - * This sets up the column's PHP type, size, precision, scale as well as default value. - * @param string the column's DB type - * @param mixed the default value - */ - public function init($dbType, $defaultValue) - { - $this->dbType=$dbType; - $this->extractType($dbType); - $this->extractLimit($dbType); - if($defaultValue!==null) - $this->extractDefault($defaultValue); - } - - /** - * Extracts the PHP type from DB type. - * @param string DB type - */ - protected function extractType($dbType) - { - if(stripos($dbType,'int')!==false) - $this->type='integer'; - else if(stripos($dbType,'bool')!==false) - $this->type='boolean'; - else if(preg_match('/(real|floa|doub)/i',$dbType)) - $this->type='double'; - else - $this->type='string'; - } - - /** - * Extracts size, precision and scale information from column's DB type. - * @param string the column's DB type - */ - protected function extractLimit($dbType) - { - if(strpos($dbType,'(') && preg_match('/\((.*)\)/',$dbType,$matches)) - { - $values=explode(',',$matches[1]); - $this->size=$this->precision=(int)$values[0]; - if(isset($values[1])) - $this->scale=(int)$values[1]; - } - } - - /** - * Extracts the default value for the column. - * The value is typecasted to correct PHP type. - * @param mixed the default value obtained from metadata - */ - protected function extractDefault($defaultValue) - { - $this->defaultValue=$this->typecast($defaultValue); - } - - /** - * Converts the input value to the type that this column is of. - * @param mixed input value - * @return mixed converted value - */ - public function typecast($value) - { - if(gettype($value)===$this->type || $value===null || $value instanceof TDbExpression) - return $value; - if($value==='') - return $this->type==='string' ? '' : null; - switch($this->type) - { - case 'integer': return (integer)$value; - case 'boolean': return (boolean)$value; - case 'double': return (double)$value; - case 'string': return (string)$value; - default: return $value; - } - } -} |