/** * * @param array $columnNames * @param string $indexName * @param bool $isUnique * @param bool $isPrimary * @return Table */ private function _createIndex(array $columnNames, $indexName, $isUnique, $isPrimary) { if (preg_match('(([^a-zA-Z0-9_]+))', $indexName)) { throw SchemaException::indexNameInvalid($indexName); } foreach ($columnNames as $columnName => $indexColOptions) { if (is_numeric($columnName) && is_string($indexColOptions)) { $columnName = $indexColOptions; } if (!$this->hasColumn($columnName)) { throw SchemaException::columnDoesNotExist($columnName, $this->_name); } } $this->_addIndex(new Index($indexName, $columnNames, $isUnique, $isPrimary)); return $this; }
/** * @param array $columnNames * @param string $indexName * @param boolean $isUnique * @param boolean $isPrimary * @param array $flags * @param array $options * * @return Index * * @throws SchemaException */ private function _createIndex(array $columnNames, $indexName, $isUnique, $isPrimary, array $flags = array(), array $options = array()) { if (preg_match('(([^a-zA-Z0-9_]+))', $this->normalizeIdentifier($indexName))) { throw SchemaException::indexNameInvalid($indexName); } foreach ($columnNames as $columnName => $indexColOptions) { if (is_numeric($columnName) && is_string($indexColOptions)) { $columnName = $indexColOptions; } if (!$this->hasColumn($columnName)) { throw SchemaException::columnDoesNotExist($columnName, $this->_name); } } return new Index($indexName, $columnNames, $isUnique, $isPrimary, $flags, $options); }