core-bundle/src/Doctrine/Schema/DcaSchemaProvider.php
private function getIndexLength(Table $table, string $column): ?int
    {
        $col = $table->getColumn($column);

        // Not a text field
        if (null === ($length = $col->getLength())) {
            return null;
        }

        // Return if the field is shorter than the shortest possible index
        // length (utf8mb4 on InnoDB without large prefixes)
        if ($length <= 191) {
            return null;
        }

        if ($col->hasPlatformOption('collation')) {
            $collation = $col->getPlatformOption('collation');
        } else {
            $collation = $table->getOption('collate');
        }

        $defaultLength = $this->getDefaultIndexLength($table);
        $bytes = 0 === strncmp($collation, 'utf8mb4', 7) ? 4 : 3;
        $indexLength = (int) floor($defaultLength / $bytes);

        // Return if the field is shorter than the index length
        if ($length <= $indexLength) {
            return null;
        }

        return $indexLength;
    }
private function getIndexLength(Table $table, string $column): ?int
    {
        $col = $table->getColumn($column);

        // Not a text field
        if (null === ($length = $col->getLength())) {
            return null;
        }

        // Return if the field is shorter than the shortest possible index
        // length (utf8mb4 on InnoDB without large prefixes)
        if ($length <= 191) {
            return null;
        }

        if ($col->hasPlatformOption('collation')) {
            $collation = $col->getPlatformOption('collation');
        } else {
            $collation = $table->getOption('collate');
        }

        $defaultLength = $this->getDefaultIndexLength($table);
        $bytes = 0 === strncmp($collation, 'utf8mb4', 7) ? 4 : 3;
        $indexLength = (int) floor($defaultLength / $bytes);

        // Return if the field is shorter than the index length
        if ($length <= $indexLength) {
            return null;
        }

        return $indexLength;
    }
private function getIndexLength ( Table $ table , string $ column ) : ? int { $ col = $ table -> getColumn ( $ column ) ; // Not a text field if ( null === ( $ length = $ col -> getLength ( ) ) ) { return null ; } // Return if the field is shorter than the shortest possible index // length (utf8mb4 on InnoDB without large prefixes) if ( $ length <= 191 ) { return null ; } if ( $ col -> hasPlatformOption ( 'collation' ) ) { $ collation = $ col -> getPlatformOption ( 'collation' ) ; } else { $ collation = $ table -> getOption ( 'collate' ) ; } $ defaultLength = $ this -> getDefaultIndexLength ( $ table ) ; $ bytes = 0 === strncmp ( $ collation , 'utf8mb4' , 7 ) ? 4 : 3 ; $ indexLength = ( int ) floor ( $ defaultLength / $ bytes ) ; // Return if the field is shorter than the index length if ( $ length <= $ indexLength ) { return null ; } return $ indexLength ; }
Returns the index length if the index needs to be shortened.
Returns the index length if the index needs to be shortened .