lib/Doctrine/DBAL/Schema/AbstractAsset.php
protected function _generateIdentifierName($columnNames, $prefix = '', $maxSize = 30)
    {
        $hash = implode('', array_map(static function ($column) {
            return dechex(crc32($column));
        }, $columnNames));

        return strtoupper(substr($prefix . '_' . $hash, 0, $maxSize));
    }
protected function _generateIdentifierName($columnNames, $prefix = '', $maxSize = 30)
    {
        $hash = implode('', array_map(static function ($column) {
            return dechex(crc32($column));
        }, $columnNames));

        return strtoupper(substr($prefix . '_' . $hash, 0, $maxSize));
    }
protected function _generateIdentifierName ( $ columnNames , $ prefix = '' , $ maxSize = 30 ) { $ hash = implode ( '' , array_map ( static function ( $ column ) { return dechex ( crc32 ( $ column ) ) ; } , $ columnNames ) ) ; return strtoupper ( substr ( $ prefix . '_' . $ hash , 0 , $ maxSize ) ) ; }
Generates an identifier from a list of column names obeying a certain string length.

This is especially important for Oracle, since it does not allow identifiers larger than 30 chars,
however building idents automatically for foreign keys, composite keys or such can easily create
very long names.

@param string[] $columnNames
@param string   $prefix
@param int      $maxSize

@return string
Generates an identifier from a list of column names obeying a certain string length .