src/ORM/DataObjectSchema.php
protected function buildCustomDatabaseIndexes($class)
    {
        $indexes = [];
        $classIndexes = Config::inst()->get($class, 'indexes', Config::UNINHERITED) ?: [];
        foreach ($classIndexes as $indexName => $indexSpec) {
            if (array_key_exists($indexName, $indexes)) {
                throw new InvalidArgumentException(sprintf(
                    'Index named "%s" already exists on class %s',
                    $indexName,
                    $class
                ));
            }
            if (is_array($indexSpec)) {
                if (!ArrayLib::is_associative($indexSpec)) {
                    $indexSpec = [
                        'columns' => $indexSpec,
                    ];
                }
                if (!isset($indexSpec['type'])) {
                    $indexSpec['type'] = 'index';
                }
                if (!isset($indexSpec['columns'])) {
                    $indexSpec['columns'] = [$indexName];
                } elseif (!is_array($indexSpec['columns'])) {
                    throw new InvalidArgumentException(sprintf(
                        'Index %s on %s is not valid. columns should be an array %s given',
                        var_export($indexName, true),
                        var_export($class, true),
                        var_export($indexSpec['columns'], true)
                    ));
                }
            } else {
                $indexSpec = [
                    'type' => 'index',
                    'columns' => [$indexName],
                ];
            }
            $indexes[$indexName] = $indexSpec;
        }
        return $indexes;
    }
protected function buildCustomDatabaseIndexes($class)
    {
        $indexes = [];
        $classIndexes = Config::inst()->get($class, 'indexes', Config::UNINHERITED) ?: [];
        foreach ($classIndexes as $indexName => $indexSpec) {
            if (array_key_exists($indexName, $indexes)) {
                throw new InvalidArgumentException(sprintf(
                    'Index named "%s" already exists on class %s',
                    $indexName,
                    $class
                ));
            }
            if (is_array($indexSpec)) {
                if (!ArrayLib::is_associative($indexSpec)) {
                    $indexSpec = [
                        'columns' => $indexSpec,
                    ];
                }
                if (!isset($indexSpec['type'])) {
                    $indexSpec['type'] = 'index';
                }
                if (!isset($indexSpec['columns'])) {
                    $indexSpec['columns'] = [$indexName];
                } elseif (!is_array($indexSpec['columns'])) {
                    throw new InvalidArgumentException(sprintf(
                        'Index %s on %s is not valid. columns should be an array %s given',
                        var_export($indexName, true),
                        var_export($class, true),
                        var_export($indexSpec['columns'], true)
                    ));
                }
            } else {
                $indexSpec = [
                    'type' => 'index',
                    'columns' => [$indexName],
                ];
            }
            $indexes[$indexName] = $indexSpec;
        }
        return $indexes;
    }
protected function buildCustomDatabaseIndexes ( $ class ) { $ indexes = [ ] ; $ classIndexes = Config :: inst ( ) -> get ( $ class , 'indexes' , Config :: UNINHERITED ) ? : [ ] ; foreach ( $ classIndexes as $ indexName => $ indexSpec ) { if ( array_key_exists ( $ indexName , $ indexes ) ) { throw new InvalidArgumentException ( sprintf ( 'Index named "%s" already exists on class %s' , $ indexName , $ class ) ) ; } if ( is_array ( $ indexSpec ) ) { if ( ! ArrayLib :: is_associative ( $ indexSpec ) ) { $ indexSpec = [ 'columns' => $ indexSpec , ] ; } if ( ! isset ( $ indexSpec [ 'type' ] ) ) { $ indexSpec [ 'type' ] = 'index' ; } if ( ! isset ( $ indexSpec [ 'columns' ] ) ) { $ indexSpec [ 'columns' ] = [ $ indexName ] ; } elseif ( ! is_array ( $ indexSpec [ 'columns' ] ) ) { throw new InvalidArgumentException ( sprintf ( 'Index %s on %s is not valid. columns should be an array %s given' , var_export ( $ indexName , true ) , var_export ( $ class , true ) , var_export ( $ indexSpec [ 'columns' ] , true ) ) ) ; } } else { $ indexSpec = [ 'type' => 'index' , 'columns' => [ $ indexName ] , ] ; } $ indexes [ $ indexName ] = $ indexSpec ; } return $ indexes ; }
Look for custom indexes declared on the class

@param  string $class

@return array
@throws InvalidArgumentException If an index already exists on the class
@throws InvalidArgumentException If a custom index format is not valid
Look for custom indexes declared on the class