CMysqlColumnSchema
| Пакет | system.db.schema.mysql |
|---|---|
| Наследование | класс CMysqlColumnSchema » CDbColumnSchema » CComponent |
| С версии | 1.0 |
| Исходный код | framework/db/schema/mysql/CMysqlColumnSchema.php |
Класс CMysqlColumnSchema описывает метаданные столбца таблицы MySQL.
Общественные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| allowNull | boolean | является ли столбец допустимым значением NULL. | CDbColumnSchema |
| autoIncrement | boolean | является ли столбец автоинкрементным | CDbColumnSchema |
| comment | string | комментарий к столбцу. | CDbColumnSchema |
| dbType | string | тип БД для этого столбца. | CDbColumnSchema |
| defaultValue | mixed | значение по умолчанию для этого столбца | CDbColumnSchema |
| isForeignKey | boolean | является ли столбец внешним ключом | CDbColumnSchema |
| isPrimaryKey | boolean | является ли столбец первичным ключом | CDbColumnSchema |
| name | string | имя этого столбца (без кавычек). | CDbColumnSchema |
| precision | integer | точность данных столбца, если это числовой тип. | CDbColumnSchema |
| rawName | string | исходное имя этого столбца. | CDbColumnSchema |
| scale | integer | масштаб данных столбца, если это числовой тип. | CDbColumnSchema |
| size | integer | размер столбца. | CDbColumnSchema |
| type | string | тип PHP этого столбца. | CDbColumnSchema |
Общественные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли читать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующего обработчика событий. | CComponent |
| disableBehavior() | Отключает прикрепленное поведение. | CComponent |
| disableBehaviors() | Отключает все прикрепленные к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает прикрепленное поведение. | CComponent |
| enableBehaviors() | Включает все прикрепленные к этому компоненту поведения. | CComponent |
| evaluateExpression() | Вычисляет выражение PHP или обратный вызов в контексте этого компонента. | CComponent |
| getEventHandlers() | Возвращает список прикрепленных обработчиков событий для события. | CComponent |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикрепленные обработчики для заданного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует столбец с его типом БД и значением по умолчанию. | CDbColumnSchema |
| raiseEvent() | Вызывает событие. | CComponent |
| typecast() | Преобразует входное значение в тип, к которому относится этот столбец. | CDbColumnSchema |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| extractDefault() | Извлекает значение по умолчанию для столбца. | CMysqlColumnSchema |
| extractLimit() | Извлекает информацию о размере, точности и масштабе из типа БД столбца. | CMysqlColumnSchema |
| extractType() | Извлекает тип PHP из типа БД. | CMysqlColumnSchema |
Подробное описание методов
extractDefault() метод
protected void extractDefault(mixed $defaultValue) | ||
| $defaultValue | mixed | значение по умолчанию, полученное из метаданных |
Исходный код: framework/db/schema/mysql/CMysqlColumnSchema.php#43 (показать)
protected function extractDefault($defaultValue)
{
if(strncmp($this->dbType,'bit',3)===0)
$this->defaultValue=bindec(trim($defaultValue,'b\''));
elseif(($this->dbType==='timestamp' || $this->dbType==='datetime') && $defaultValue==='CURRENT_TIMESTAMP')
$this->defaultValue=null;
else
parent::extractDefault($defaultValue);
}
Извлекает значение по умолчанию для столбца. Значение приводится к соответствующему типу PHP.
extractLimit() метод
protected void extractLimit(string $dbType) | ||
| $dbType | string | тип БД столбца |
Исходный код: framework/db/schema/mysql/CMysqlColumnSchema.php#57 (показать)
protected function extractLimit($dbType)
{
if (strncmp($dbType, 'enum', 4)===0 && preg_match('/\(([\'"])(.*)\\1\)/',$dbType,$matches))
{
// explode by (single or double) quote and comma (ENUM values may contain commas)
$values = explode($matches[1].','.$matches[1], $matches[2]);
$size = 0;
foreach($values as $value)
{
if(($n=strlen($value)) > $size)
$size=$n;
}
$this->size = $this->precision = $size;
}
else
parent::extractLimit($dbType);
}
Извлекает информацию о размере, точности и масштабе из типа данных базы данных столбца.
extractType() метод
protected void extractType(string $dbType) | ||
| $dbType | строка | Тип данных базы данных |
Исходный код: framework/db/schema/mysql/CMysqlColumnSchema.php#24 (показать)
protected function extractType($dbType)
{
if(strncmp($dbType,'enum',4)===0)
$this->type='string';
elseif(strpos($dbType,'float')!==false || strpos($dbType,'double')!==false)
$this->type='double';
elseif(strpos($dbType,'bool')!==false)
$this->type='boolean';
elseif(strpos($dbType,'int')===0 && strpos($dbType,'unsigned')===false || preg_match('/(bit|tinyint|smallint|mediumint)/',$dbType))
$this->type='integer';
else
$this->type='string';
}
Извлекает тип PHP из типа данных базы данных.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CMysqlColumnSchema