/** * @depends testResolveIndexNameNonUnique */ public function testResolveIndexNameUnique() { $indexName = 'ThisIsAUniqueIndex'; $resolvedIndexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($indexName, true); $this->assertNotEmpty($resolvedIndexName); $this->assertNotEquals($indexName, $resolvedIndexName); $this->assertContains('unique_', $resolvedIndexName); }
protected static function registerUniqueIndexByMemberName($member, $modelClassName) { $indexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($member, true); $uniqueIndexes = GeneralCache::getEntry(static::CACHE_KEY, array()); $uniqueIndexes[$modelClassName][$indexName] = array('members' => array($member), 'unique' => true); GeneralCache::cacheEntry(static::CACHE_KEY, $uniqueIndexes); }
protected static function resolveIndexesByColumnNames($columns) { $indexes = array(); $compositeIndexKey = null; $compositeIndexValues = array('columns' => array(), 'unique' => true); foreach ($columns as $column) { $columnName = $column['name']; $indexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($columnName, false); $indexes[$indexName] = array('columns' => array($columnName), 'unique' => false); if (!empty($compositeIndexKey)) { $compositeIndexKey .= '_'; } $compositeIndexKey .= $columnName; $compositeIndexValues['columns'][] = $columnName; } $indexName = RedBeanModelMemberIndexMetadataAdapter::resolveRandomIndexName($compositeIndexKey, true); $indexes[$indexName] = $compositeIndexValues; return $indexes; }