Skip to content

Commit

Permalink
Refactor the OrderByKeyToClassConstRector to use the new enum only in…
Browse files Browse the repository at this point in the history
… Criteria::orderBy method call, and remove usage of Criteria::ASC and Criteria::DESC where not recommended

Relates to:

- doctrine/collections#389;
- doctrine/orm#11313 (comment)
  • Loading branch information
julienfastre committed Aug 25, 2024
1 parent 3ba7adb commit b41f96c
Show file tree
Hide file tree
Showing 22 changed files with 400 additions and 217 deletions.
3 changes: 0 additions & 3 deletions config/sets/doctrine-code-quality.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use Rector\Doctrine\CodeQuality\Rector\Property\CorrectDefaultTypesOnEntityPropertyRector;
use Rector\Doctrine\CodeQuality\Rector\Property\ImproveDoctrineCollectionDocTypeInEntityRector;
use Rector\Doctrine\CodeQuality\Rector\Property\MakeEntityDateTimePropertyDateTimeInterfaceRector;
use Rector\Doctrine\CodeQuality\Rector\Property\OrderByKeyToClassConstRector;
use Rector\Doctrine\CodeQuality\Rector\Property\TypedPropertyFromColumnTypeRector;
use Rector\Doctrine\CodeQuality\Rector\Property\TypedPropertyFromToManyRelationTypeRector;
use Rector\Doctrine\CodeQuality\Rector\Property\TypedPropertyFromToOneRelationTypeRector;
Expand All @@ -31,8 +30,6 @@
TypedPropertyFromColumnTypeRector::class,
TypedPropertyFromToOneRelationTypeRector::class,
TypedPropertyFromToManyRelationTypeRector::class,

OrderByKeyToClassConstRector::class,
]);

$rectorConfig->ruleWithConfiguration(AttributeKeyToClassConstFetchRector::class, [
Expand Down
17 changes: 1 addition & 16 deletions config/sets/doctrine-collection-22.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,7 @@
declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Renaming\Rector\ClassConstFetch\RenameClassConstFetchRector;
use Rector\Renaming\ValueObject\RenameClassAndConstFetch;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(RenameClassConstFetchRector::class, [
new RenameClassAndConstFetch(
'Doctrine\\Common\\Collections\\Criteria',
'ASC',
'Doctrine\\Common\\Collections\\Order',
'Ascending'
),
new RenameClassAndConstFetch(
'Doctrine\\Common\\Collections\\Criteria',
'DESC',
'Doctrine\\Common\\Collections\\Order',
'Descending'
),
]);
$rectorConfig->rules([\Rector\Doctrine\Collection22\Rector\CriteriaOrderingConstantsDeprecationRector::class]);
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Doctrine\Common\Collections\Criteria as SomeAliasedCriteria;

$crit = new SomeAliasedCriteria();
$crit->orderBy(['param1' => \Doctrine\Common\Collections\Order::Ascending, 'param2' => SomeAliasedCriteria::DESC, 'param3' => 'asc']);

?>
-----
<?php

use Doctrine\Common\Collections\Criteria as SomeAliasedCriteria;

$crit = new SomeAliasedCriteria();
$crit->orderBy(['param1' => \Doctrine\Common\Collections\Order::Ascending, 'param2' => \Doctrine\Common\Collections\Order::Descending, 'param3' => \Doctrine\Common\Collections\Order::Ascending]);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['asc' => Criteria::ASC, 'desc' => Criteria::DESC]);

?>
-----
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['asc' => \Doctrine\Common\Collections\Order::Ascending, 'desc' => \Doctrine\Common\Collections\Order::Descending]);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['asc' => 'asc', 'desc' => 'desc']);

?>
-----
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['asc' => \Doctrine\Common\Collections\Order::Ascending, 'desc' => \Doctrine\Common\Collections\Order::Descending]);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['asc' => 'ASC', 'desc' => 'DESC']);

?>
-----
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['asc' => \Doctrine\Common\Collections\Order::Ascending, 'desc' => \Doctrine\Common\Collections\Order::Descending]);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['param1' => \Doctrine\Common\Collections\Order::Ascending, 'param2' => Criteria::DESC, 'param3' => 'asc']);

?>
-----
<?php

use Doctrine\Common\Collections\Criteria;

$criteria = new Criteria();
$criteria->orderBy(['param1' => \Doctrine\Common\Collections\Order::Ascending, 'param2' => \Doctrine\Common\Collections\Order::Descending, 'param3' => \Doctrine\Common\Collections\Order::Ascending]);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

use Doctrine\Common\Collections\Criteria;

$query->addOrderBy('someParameter', Criteria::ASC);

?>
-----
<?php

use Doctrine\Common\Collections\Criteria;

$query->addOrderBy('someParameter', 'ASC');

?>

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
<?php

namespace Rector\Doctrine\Tests\CodeQuality\Rector\Property\OrderByKeyToClassConstRector\Fixture;

use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM;

class SkipAlreadyUsingConst
{
#[ORM\OrderBy(['createdAt' => Criteria::ASC])]
protected \DateTimeInterface $messages;
}
$criteria = new Criteria();
$criteria->orderBy(['asc' => \Doctrine\Common\Collections\Order::Ascending, 'desc' => \Doctrine\Common\Collections\Order::Descending]);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php

use SomeClass;

$query->addOrderBy('someParameter', SomeClass::ASC);

?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?php

$object = new SomeClass();
$object->orderBy(['someType' => 'ASC']);

?>
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Doctrine\CodeQuality\Rector\Property\OrderByKeyToClassConstRector;
use Rector\Doctrine\Collection22\Rector\CriteriaOrderingConstantsDeprecationRector;

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->rule(OrderByKeyToClassConstRector::class);
$rectorConfig->rule(CriteriaOrderingConstantsDeprecationRector::class);
};
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

declare(strict_types=1);

namespace Rector\Doctrine\Tests\CodeQuality\Rector\Property\OrderByKeyToClassConstRector;
namespace Rector\Doctrine\Tests\Collection22\Rector\CriteriaOrderingConstantsDeprecations;

use Iterator;
use PHPUnit\Framework\Attributes\DataProvider;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;

final class OrderByKeyToClassConstRectorTest extends AbstractRectorTestCase
final class CriteriaOrderingConstantDeprecationTest extends AbstractRectorTestCase
{
#[DataProvider('provideData')]
public function test(string $filePath): void
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Rector\Doctrine\Tests\Collection22\Rector\CriteriaOrderingConstantsDeprecations\Fixture;

use Doctrine\ORM\Mapping as ORM;

class ReplaceOrderByAscWithClassConstant
{
#[ORM\OrderBy(['createdAt' => 'asc'])]
protected \DateTimeInterface $messages;
}
?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Rector\Doctrine\Tests\Collection22\Rector\CriteriaOrderingConstantsDeprecations\Fixture;

use Doctrine\ORM\Mapping as ORM;

class ReplaceOrderByAscWithClassConstant
{
#[ORM\OrderBy(['createdAt' => 'ASC'])]
protected \DateTimeInterface $messages;
}
?>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

namespace Rector\Doctrine\Tests\Collection22\Rector\CriteriaOrderingConstantsDeprecations\Fixture;

use Doctrine\ORM\Mapping as ORM;

class ReplaceOrderByAscWithClassConstant
{
#[ORM\OrderBy(['createdAt' => 'desc'])]
protected \DateTimeInterface $messages;
}
?>
Loading

0 comments on commit b41f96c

Please sign in to comment.