* @link http://www.pradosoft.com/ * @copyright Copyright © 2005-2014 PradoSoft * @license http://www.pradosoft.com/license/ * @package Prado\Data\Common\Mysql */ namespace Prado\Data\Common\Mysql; /** * Load common TDbTableCommon class. */ use Prado\Data\Common\TDbTableColumn; use Prado\Prado; /** * Describes the column metadata of the schema for a Mysql database table. * * @author Wei Zhuo * @package Prado\Data\Common\Mysql * @since 3.1 */ class TMysqlTableColumn extends TDbTableColumn { private static $types = array( 'integer' => array('bit', 'tinyint', 'smallint', 'mediumint', 'int', 'integer', 'bigint'), 'boolean' => array('boolean', 'bool'), 'float' => array('float', 'double', 'double precision', 'decimal', 'dec', 'numeric', 'fixed') ); /** * Overrides parent implementation, returns PHP type from the db type. * @return boolean derived PHP primitive type from the column db type. */ public function getPHPType() { $dbtype = trim(str_replace(array('unsigned', 'zerofill'),array('','',),strtolower($this->getDbType()))); if($dbtype==='tinyint' && $this->getColumnSize()===1) return 'boolean'; foreach(self::$types as $type => $dbtypes) { if(in_array($dbtype, $dbtypes)) return $type; } return 'string'; } /** * @return boolean true if column will auto-increment when the column value is inserted as null. */ public function getAutoIncrement() { return $this->getInfo('AutoIncrement', false); } /** * @return boolean true if auto increment is true. */ public function hasSequence() { return $this->getAutoIncrement(); } public function getDbTypeValues() { return $this->getInfo('DbTypeValues'); } }