protected function createSchema() { $this->addAutoIncrementId(); $this->title = DataType::string(255); $this->content = DataType::text(); $this->addTimestamps(); $this->addIndex('created', 'created'); }
/** * {@inheritdoc} */ protected function createSchema() { $id = $this->getId(); $this->{$id} = $this->getIdType(); $this->variable = DataType::string(255); $this->value = DataType::text(); $this->setPrimaryKey($id, 'variable'); }
protected function createSchema() { $this->addAutoIncrementId(); $this->author = DataType::string(20, true); $this->message = DataType::text(); $this->addTimeStamps(); $this->addIndex('created', 'created'); }
protected function createSchema() { $this->addAutoIncrementId(); $this->postId = DataType::integer(DataType::UNSIGNED); $this->author = DataType::string(255); $this->content = DataType::text(); $this->addTimeStamps(); $this->addIndex('postId', 'postId'); }
/** * Construct migration runner. */ public function __construct(\Jivoo\Store\Document $config) { $this->config = $config; $this->config->defaults = array('automigrate' => false, 'silent' => false, 'mtimes' => array()); // Initialize SchemaRevision schema $this->definition = new \Jivoo\Data\DefinitionBuilder(); $this->definition->revision = DataType::string(255); $this->definition->setPrimaryKey('revision'); }
/** * Construct model. * @param string $name Name of model. */ public function __construct($name = 'Extension') { parent::__construct($name); $this->addField('canonicalName', tr('Canonical name'), DataType::string()); $this->addField('name', tr('Name'), DataType::string()); $this->addField('version', tr('Version'), DataType::string()); $this->addField('description', tr('Description'), DataType::text()); $this->addField('enabled', tr('Enabled'), DataType::boolean()); }
/** * Construct file model. */ public function __construct() { parent::__construct('File'); $this->addField('path', tr('Path'), DataType::string()); $this->addField('name', tr('Name'), DataType::string()); $this->addField('type', tr('Type'), DataType::enum(array('directory', 'file'))); $this->addField('size', tr('Size'), DataType::integer(DataType::UNSIGNED)); $this->addField('modified', tr('Modified'), DataType::dateTime()); $this->addField('created', tr('Created'), DataType::dateTime()); }
protected function createSchema() { $this->addAutoIncrementId(); // Autoincrementing INT id $this->username = DataType::string(255); // Username VARCHAR(255) $this->password = DataType::string(255); // Password VARCHAR(255) $this->addtimeStamps(); // Timestamps: 'created' and 'updated' $this->addUnique('username', 'username'); // A unique index on the username field }
/** * {@inheritdoc} */ protected function init() { $this->config->defaults = array('automigrate' => false, 'silent' => false, 'mtimes' => array()); // Initialize SchemaRevision schema $this->schema = new SchemaBuilder('SchemaRevision'); $this->schema->revision = DataType::string(255); $this->schema->setPrimaryKey('revision'); if (isset($this->app->manifest['migrations'])) { foreach ($this->app->manifest['migrations'] as $name) { $this->attachDatabase($name, $this->p('app', 'migrations/' . $name)); } } else { if (isset($this->m->Databases->default)) { $this->attachDatabase('default', $this->p('app', 'migrations')); } } }
/** * Set up maintenance user and install lock. * @param string $data POST data if any. * @return \Jivoo\Routing\Response|string Response. */ public function configure($data = null) { $this->viewData['title'] = tr('Configure maintenance user'); $form = new Form('user'); $form->addField('username', DataType::string(), tr('Username')); $form->addField('password', DataType::string(), tr('Password')); $form->addField('confirmPassword', DataType::string(), tr('Confirm password')); $form->username = '******'; if (isset($data)) { $form->addData($data['user']); if ($form->isValid()) { if ($form->password !== $form->confirmPassword) { $form->addError('password', tr('The two passwords are not identical.')); } else { $auth = $this->m->Setup->getAuth(); $password = $auth->passwordHasher->hash($form->password); $this->m->Setup->lock($form->username, $password); return $this->next(); } } } $this->viewData['user'] = $form; return $this->render(); }
/** * Add a string field to form. * @param string $field Field name. * @param string $label Field label, if not set the field name will be used. * @param bool $required Whether or not the field is required. */ public function addString($field, $label = null, $required = true) { $this->addField($field, DataType::string(), $label, $required); }
/** * Convert output of SHOW COLUMN to DataType. * @param array $row Row result. * @throws TypeException If type unsupported. * @return DataType The type. */ private function toDataType($row) { $null = $row['is_nullable'] != 'NO'; $default = null; if (isset($row['column_default'])) { $default = $row['column_default']; } $type = $row['data_type']; if (strpos($type, 'int') !== false) { $intFlags = 0; if (preg_match('/^nextval\\(/', $default) === 1) { $intFlags = DataType::AUTO_INCREMENT; $default = null; } else { if (isset($default)) { $default = intval($default); } } if (strpos($type, 'bigint') !== false) { return DataType::integer($intFlags | DataType::BIG, $null, $default); } if (strpos($type, 'smallint') !== false) { return DataType::integer($intFlags | DataType::SMALL, $null, $default); } return DataType::integer($intFlags, $null, $default); } if (strpos($type, 'double') !== false) { return DataType::float($null, isset($default) ? floatval($default) : null); } if (strpos($type, 'bool') !== false) { return DataType::boolean($null, isset($default) ? boolval($default) : null); } if (preg_match("/^'(.*)'::[a-z ]+\$/", $default, $matches) === 1) { $default = $matches[1]; } else { $default = null; } if (strpos($type, 'character') !== false) { $length = $row['character_maximum_length']; return DataType::string($length, $null, $default); } if (strpos($type, 'date') !== false) { return DataType::date($null, isset($default) ? strtotime($default . ' UTC') : null); } if (strpos($type, 'timestamp') !== false) { return DataType::dateTime($null, isset($default) ? strtotime($default . ' UTC') : null); } if (strpos($type, 'text') !== false) { return DataType::text($null, $default); } throw new TypeException(tr('Unsupported PostgreSQL type "%1" for column: %2', $row['data_type'], $row['column_name'])); }
/** * Construct model. * @param string $name Name of model. */ public function __construct($name = 'Theme') { parent::__construct($name); $this->addField('screenshot', tr('Screenshot'), DataType::string()); }
/** * Convert output of SHOW COLUMN to DataType. * @param array $row Row result. * @throws TypeException If type unsupported. * @return DataType The type. */ private function toDataType($row) { $null = (isset($row['Null']) and $row['Null'] != 'NO'); $default = null; if (isset($row['Default'])) { $default = $row['Default']; } if (preg_match('/enum\\((.+)\\)/i', $row['Type'], $matches) === 1) { preg_match_all('/\'([^\']+)\'/', $matches[1], $matches); $values = $matches[1]; return DataType::enum($values, $null, $default); } preg_match('/ *([^ (]+) *(\\(([0-9]+)\\))? *(unsigned)? *?/i', $row['Type'], $matches); $actualType = strtolower($matches[1]); $length = isset($matches[3]) ? intval($matches[3]) : 0; $intFlags = 0; if (isset($matches[4])) { $intFlags |= DataType::UNSIGNED; } if (strpos($row['Extra'], 'auto_increment') !== false) { $intFlags |= DataType::AUTO_INCREMENT; } switch ($actualType) { case 'bigint': $intFlags |= DataType::BIG; return DataType::integer($intFlags, $null, isset($default) ? intval($default) : null); case 'smallint': $intFlags |= DataType::SMALL; return DataType::integer($intFlags, $null, isset($default) ? intval($default) : null); case 'tinyint': $intFlags |= DataType::TINY; return DataType::integer($intFlags, $null, isset($default) ? intval($default) : null); case 'int': return DataType::integer($intFlags, $null, isset($default) ? intval($default) : null); case 'double': return DataType::float($null, isset($default) ? floatval($default) : null); case 'varchar': return DataType::string($length, $null, $default); case 'blob': return DataType::binary($null, $default); case 'date': return DataType::date($null, isset($default) ? strtotime($default . ' UTC') : null); case 'datetime': return DataType::dateTime($null, isset($default) ? strtotime($default . ' UTC') : null); case 'text': return DataType::text($null, $default); } throw new TypeException(tr('Unsupported MySQL type for column: %1', $row['Field'])); }