Skip to content

Commit

Permalink
Add native types to QuoteStrategy classes
Browse files Browse the repository at this point in the history
  • Loading branch information
derrabus committed Jul 20, 2022
1 parent d41c4c6 commit ef8fca3
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 63 deletions.
41 changes: 21 additions & 20 deletions lib/Doctrine/ORM/Mapping/AnsiQuoteStrategy.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,67 +15,68 @@ class AnsiQuoteStrategy implements QuoteStrategy
{
use SQLResultCasing;

/**
* {@inheritdoc}
*/
public function getColumnName($fieldName, ClassMetadata $class, AbstractPlatform $platform)
{
public function getColumnName(
string $fieldName,
ClassMetadata $class,
AbstractPlatform $platform
): string {
return $class->fieldMappings[$fieldName]['columnName'];
}

/**
* {@inheritdoc}
*/
public function getTableName(ClassMetadata $class, AbstractPlatform $platform)
public function getTableName(ClassMetadata $class, AbstractPlatform $platform): string
{
return $class->table['name'];
}

/**
* {@inheritdoc}
*/
public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform)
public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform): string
{
return $definition['sequenceName'];
}

/**
* {@inheritdoc}
*/
public function getJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform)
public function getJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform): string
{
return $joinColumn['name'];
}

/**
* {@inheritdoc}
*/
public function getReferencedJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform)
{
public function getReferencedJoinColumnName(
array $joinColumn,
ClassMetadata $class,
AbstractPlatform $platform
): string {
return $joinColumn['referencedColumnName'];
}

/**
* {@inheritdoc}
*/
public function getJoinTableName(array $association, ClassMetadata $class, AbstractPlatform $platform)
public function getJoinTableName(array $association, ClassMetadata $class, AbstractPlatform $platform): string
{
return $association['joinTable']['name'];
}

/**
* {@inheritdoc}
*/
public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform)
public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform): array
{
return $class->identifier;
}

/**
* {@inheritdoc}
*/
public function getColumnAlias($columnName, $counter, AbstractPlatform $platform, ?ClassMetadata $class = null)
{
public function getColumnAlias(
string $columnName,
int $counter,
AbstractPlatform $platform,
?ClassMetadata $class = null
): string {
return $this->getSQLResultCasing($platform, $columnName . '_' . $counter);
}
}
33 changes: 17 additions & 16 deletions lib/Doctrine/ORM/Mapping/DefaultQuoteStrategy.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ class DefaultQuoteStrategy implements QuoteStrategy
{
use SQLResultCasing;

/**
* {@inheritdoc}
*/
public function getColumnName($fieldName, ClassMetadata $class, AbstractPlatform $platform)
public function getColumnName(string $fieldName, ClassMetadata $class, AbstractPlatform $platform): string
{
return isset($class->fieldMappings[$fieldName]['quoted'])
? $platform->quoteIdentifier($class->fieldMappings[$fieldName]['columnName'])
Expand All @@ -35,7 +32,7 @@ public function getColumnName($fieldName, ClassMetadata $class, AbstractPlatform
*
* @todo Table names should be computed in DBAL depending on the platform
*/
public function getTableName(ClassMetadata $class, AbstractPlatform $platform)
public function getTableName(ClassMetadata $class, AbstractPlatform $platform): string
{
$tableName = $class->table['name'];

Expand All @@ -51,7 +48,7 @@ public function getTableName(ClassMetadata $class, AbstractPlatform $platform)
/**
* {@inheritdoc}
*/
public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform)
public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform): string
{
return isset($definition['quoted'])
? $platform->quoteIdentifier($definition['sequenceName'])
Expand All @@ -61,7 +58,7 @@ public function getSequenceName(array $definition, ClassMetadata $class, Abstrac
/**
* {@inheritdoc}
*/
public function getJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform)
public function getJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform): string
{
return isset($joinColumn['quoted'])
? $platform->quoteIdentifier($joinColumn['name'])
Expand All @@ -71,8 +68,11 @@ public function getJoinColumnName(array $joinColumn, ClassMetadata $class, Abstr
/**
* {@inheritdoc}
*/
public function getReferencedJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform)
{
public function getReferencedJoinColumnName(
array $joinColumn,
ClassMetadata $class,
AbstractPlatform $platform
): string {
return isset($joinColumn['quoted'])
? $platform->quoteIdentifier($joinColumn['referencedColumnName'])
: $joinColumn['referencedColumnName'];
Expand All @@ -81,7 +81,7 @@ public function getReferencedJoinColumnName(array $joinColumn, ClassMetadata $cl
/**
* {@inheritdoc}
*/
public function getJoinTableName(array $association, ClassMetadata $class, AbstractPlatform $platform)
public function getJoinTableName(array $association, ClassMetadata $class, AbstractPlatform $platform): string
{
$schema = '';

Expand All @@ -101,7 +101,7 @@ public function getJoinTableName(array $association, ClassMetadata $class, Abstr
/**
* {@inheritdoc}
*/
public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform)
public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform): array
{
$quotedColumnNames = [];

Expand Down Expand Up @@ -129,11 +129,12 @@ static function ($joinColumn) use ($platform) {
return $quotedColumnNames;
}

/**
* {@inheritdoc}
*/
public function getColumnAlias($columnName, $counter, AbstractPlatform $platform, ?ClassMetadata $class = null)
{
public function getColumnAlias(
string $columnName,
int $counter,
AbstractPlatform $platform,
?ClassMetadata $class = null
): string {
// 1 ) Concatenate column name and counter
// 2 ) Trim the column alias to the maximum identifier length of the platform.
// If the alias is to long, characters are cut off from the beginning.
Expand Down
44 changes: 17 additions & 27 deletions lib/Doctrine/ORM/Mapping/QuoteStrategy.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,70 +13,60 @@ interface QuoteStrategy
{
/**
* Gets the (possibly quoted) column name for safe use in an SQL statement.
*
* @param string $fieldName
*
* @return string
*/
public function getColumnName($fieldName, ClassMetadata $class, AbstractPlatform $platform);
public function getColumnName(string $fieldName, ClassMetadata $class, AbstractPlatform $platform): string;

/**
* Gets the (possibly quoted) primary table name for safe use in an SQL statement.
*
* @return string
*/
public function getTableName(ClassMetadata $class, AbstractPlatform $platform);
public function getTableName(ClassMetadata $class, AbstractPlatform $platform): string;

/**
* Gets the (possibly quoted) sequence name for safe use in an SQL statement.
*
* @param mixed[] $definition
*
* @return string
*/
public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform);
public function getSequenceName(array $definition, ClassMetadata $class, AbstractPlatform $platform): string;

/**
* Gets the (possibly quoted) name of the join table.
*
* @param mixed[] $association
*
* @return string
*/
public function getJoinTableName(array $association, ClassMetadata $class, AbstractPlatform $platform);
public function getJoinTableName(array $association, ClassMetadata $class, AbstractPlatform $platform): string;

/**
* Gets the (possibly quoted) join column name.
*
* @param mixed[] $joinColumn
*
* @return string
*/
public function getJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform);
public function getJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform): string;

/**
* Gets the (possibly quoted) join column name.
*
* @param mixed[] $joinColumn
*
* @return string
*/
public function getReferencedJoinColumnName(array $joinColumn, ClassMetadata $class, AbstractPlatform $platform);
public function getReferencedJoinColumnName(
array $joinColumn,
ClassMetadata $class,
AbstractPlatform $platform
): string;

/**
* Gets the (possibly quoted) identifier column names for safe use in an SQL statement.
*
* @psalm-return list<string>
*/
public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform);
public function getIdentifierColumnNames(ClassMetadata $class, AbstractPlatform $platform): array;

/**
* Gets the column alias.
*
* @param string $columnName
* @param int $counter
*
* @return string
*/
public function getColumnAlias($columnName, $counter, AbstractPlatform $platform, ?ClassMetadata $class = null);
public function getColumnAlias(
string $columnName,
int $counter,
AbstractPlatform $platform,
?ClassMetadata $class = null
): string;
}

0 comments on commit ef8fca3

Please sign in to comment.