Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix the ECS along the codebase #34

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 10 additions & 30 deletions config/sets/sylius/plus/b2b-suite.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,37 +8,17 @@

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(AddInterfaceToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\Address' => [
'Sylius\B2BKit\Entity\AddressInterface',
],
'Sylius\Component\Core\Model\Customer' => [
'Sylius\B2BKit\Entity\CustomerInterface',
],
'Sylius\Component\Customer\Model\CustomerGroup' => [
'Sylius\B2BKit\Entity\CustomerGroupInterface',
],
'Sylius\Component\Core\Model\Order' => [
'Sylius\B2BKit\Entity\OrderInterface',
],
'Sylius\Component\Core\Model\ShopUser' => [
'Sylius\B2BKit\Entity\ShopUserInterface',
],
'Sylius\Component\Core\Model\Address' => ['Sylius\B2BKit\Entity\AddressInterface'],
'Sylius\Component\Core\Model\Customer' => ['Sylius\B2BKit\Entity\CustomerInterface'],
'Sylius\Component\Customer\Model\CustomerGroup' => ['Sylius\B2BKit\Entity\CustomerGroupInterface'],
'Sylius\Component\Core\Model\Order' => ['Sylius\B2BKit\Entity\OrderInterface'],
'Sylius\Component\Core\Model\ShopUser' => ['Sylius\B2BKit\Entity\ShopUserInterface'],
]);
$rectorConfig->ruleWithConfiguration(AddTraitToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\Address' => [
'Sylius\B2BKit\Entity\AddressAwareTrait',
],
'Sylius\Component\Core\Model\Customer' => [
'Sylius\B2BKit\Entity\CustomerAwareTrait',
],
'Sylius\Component\Customer\Model\CustomerGroup' => [
'Sylius\B2BKit\Entity\CustomerGroupAwareTrait',
],
'Sylius\Component\Core\Model\Order' => [
'Sylius\B2BKit\Entity\OrderAwareTrait',
],
'Sylius\Component\Core\Model\ShopUser' => [
'Sylius\B2BKit\Entity\ShopUserAwareTrait',
],
'Sylius\Component\Core\Model\Address' => ['Sylius\B2BKit\Entity\AddressAwareTrait'],
'Sylius\Component\Core\Model\Customer' => ['Sylius\B2BKit\Entity\CustomerAwareTrait'],
'Sylius\Component\Customer\Model\CustomerGroup' => ['Sylius\B2BKit\Entity\CustomerGroupAwareTrait'],
'Sylius\Component\Core\Model\Order' => ['Sylius\B2BKit\Entity\OrderAwareTrait'],
'Sylius\Component\Core\Model\ShopUser' => ['Sylius\B2BKit\Entity\ShopUserAwareTrait'],
]);
};
8 changes: 2 additions & 6 deletions config/sets/sylius/plus/loyalty-plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,9 @@

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(AddInterfaceToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\Customer' => [
'Sylius\LoyaltyPlugin\Domain\Model\CustomerInterface',
],
'Sylius\Component\Core\Model\Customer' => ['Sylius\LoyaltyPlugin\Domain\Model\CustomerInterface'],
]);
$rectorConfig->ruleWithConfiguration(AddTraitToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\Customer' => [
'Sylius\LoyaltyPlugin\Domain\Model\LoyaltyAwareTrait',
],
'Sylius\Component\Core\Model\Customer' => ['Sylius\LoyaltyPlugin\Domain\Model\LoyaltyAwareTrait'],
]);
};
4 changes: 1 addition & 3 deletions config/sets/sylius/plus/plus-rbac-plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(AddInterfaceToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\AdminUser' => [
'Sylius\PlusRbacPlugin\Domain\Model\AdminUserInterface',
],
'Sylius\Component\Core\Model\AdminUser' => ['Sylius\PlusRbacPlugin\Domain\Model\AdminUserInterface'],
]);

$rectorConfig->ruleWithConfiguration(AddTraitToClassExtendingTypeRector::class, [
Expand Down
12 changes: 3 additions & 9 deletions config/sets/sylius/plus/return-plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,14 @@

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(AddInterfaceToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\Channel' => [
'Sylius\ReturnPlugin\Domain\Model\ChannelInterface',
],
'Sylius\Component\Core\Model\Order' => [
'Sylius\ReturnPlugin\Domain\Model\OrderInterface',
],
'Sylius\Component\Core\Model\Channel' => ['Sylius\ReturnPlugin\Domain\Model\ChannelInterface'],
'Sylius\Component\Core\Model\Order' => ['Sylius\ReturnPlugin\Domain\Model\OrderInterface'],
]);

$rectorConfig->ruleWithConfiguration(AddTraitToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\Channel' => [
'Sylius\ReturnPlugin\Domain\Model\ReturnRequestsAllowedAwareTrait',
],
'Sylius\Component\Core\Model\Order' => [
'Sylius\ReturnPlugin\Domain\Model\ReturnRequestAwareTrait',
],
'Sylius\Component\Core\Model\Order' => ['Sylius\ReturnPlugin\Domain\Model\ReturnRequestAwareTrait'],
]);
};
2 changes: 1 addition & 1 deletion config/sets/sylius/plus/up-to-plus-modular.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
use Rector\Config\RectorConfig;
use Rector\Renaming\Rector\Name\RenameClassRector;

return static function(RectorConfig $rectorConfig): void {
return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(RenameClassRector::class, [
'Sylius\Plus\Controller\DashboardController' => 'Sylius\MultiStorePlugin\ChannelAdmin\Infrastructure\Controller\DashboardController',
'Sylius\Plus\Entity\LastLoginIpAwareInterface' => 'Sylius\MultiStorePlugin\ChannelAdmin\Domain\Model\LastLoginIpAwareInterface',
Expand Down
4 changes: 1 addition & 3 deletions config/sets/sylius/price-history/price-history-plugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@

return static function (RectorConfig $rectorConfig): void {
$rectorConfig->ruleWithConfiguration(AddInterfaceToClassExtendingTypeRector::class, [
'Sylius\Component\Core\Model\Channel' => [
'Sylius\PriceHistoryPlugin\Domain\Model\ChannelInterface',
],
'Sylius\Component\Core\Model\Channel' => ['Sylius\PriceHistoryPlugin\Domain\Model\ChannelInterface'],
'Sylius\Component\Core\Model\ChannelPricing' => [
'Sylius\PriceHistoryPlugin\Domain\Model\ChannelPricingInterface',
],
Expand Down
2 changes: 0 additions & 2 deletions src/NodeFactory/ConstructorClassMethodFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
use PhpParser\Node\Stmt\ClassMethod;
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
use Rector\DeadCode\PhpDoc\TagRemover\ParamTagRemover;
use Rector\Exception\ShouldNotHappenException;
use Rector\ValueObject\MethodName;
use Sylius\SyliusRector\ValueObject\PropertyWithPhpDocInfo;

Expand All @@ -24,7 +23,6 @@ public function __construct(
/**
* @param PropertyWithPhpDocInfo[] $requiredPropertiesWithPhpDocInfos
* @param Param[] $params
* @throws ShouldNotHappenException
*/
public function createConstructorClassMethod(array $requiredPropertiesWithPhpDocInfos, array $params): ClassMethod
{
Expand Down
2 changes: 1 addition & 1 deletion src/NodeManipulator/ClassInheritanceManipulator.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public function isDerivative(Class_ $class, string $parentClassName): bool
{
$reflection = $this->reflectionResolver->resolveClassReflection($class);

if (!$reflection instanceof ClassReflection) {
if (! $reflection instanceof ClassReflection) {
return false;
}

Expand Down
2 changes: 1 addition & 1 deletion src/NodeManipulator/ClassInterfaceManipulator.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public function __construct(
public function hasInterface(Class_ $class, string $interfaceName): bool
{
foreach ($class->implements as $implement) {
if (!$this->nodeNameResolver->isName($implement, $interfaceName)) {
if (! $this->nodeNameResolver->isName($implement, $interfaceName)) {
continue;
}

Expand Down
56 changes: 28 additions & 28 deletions src/NodeManipulator/TraitManipulator.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,34 @@ public function addAsFirstTrait(Class_ $class, string $traitName): void
$this->addTraitUse($class, $traitUse);
}

public function hasAliasForMethod(TraitUse $trait, string $methodName): bool
{
foreach ($trait->adaptations as $adaptation) {
if (! $adaptation instanceof Alias) {
continue;
}

if ($adaptation->method->toString() === $methodName) {
return true;
}
}

return false;
}

public function removeAliasForMethod(TraitUse $trait, string $methodName): void
{
foreach ($trait->adaptations as $key => $adaptation) {
if (! $adaptation instanceof Alias) {
continue;
}

if ($adaptation->method->toString() === $methodName) {
unset($trait->adaptations[$key]);
}
}
}

private function addTraitUse(Class_ $class, TraitUse $traitUse): void
{
foreach (self::BEFORE_TRAIT_TYPES as $type) {
Expand Down Expand Up @@ -49,32 +77,4 @@ private function insertBefore(array $stmts, Stmt $stmt, int $key): array

return $stmts;
}

public function hasAliasForMethod(TraitUse $trait, string $methodName): bool
{
foreach ($trait->adaptations as $adaptation) {
if (!$adaptation instanceof Alias) {
continue;
}

if ($adaptation->method->toString() === $methodName) {
return true;
}
}

return false;
}

public function removeAliasForMethod(TraitUse $trait, string $methodName): void
{
foreach ($trait->adaptations as $key => $adaptation) {
if (!$adaptation instanceof Alias) {
continue;
}

if ($adaptation->method->toString() === $methodName) {
unset($trait->adaptations[$key]);
}
}
}
}
10 changes: 4 additions & 6 deletions src/Rector/Class_/AddInterfaceToClassExtendingTypeRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
use Rector\Rector\AbstractRector;
use Sylius\SyliusRector\NodeManipulator\ClassInheritanceManipulator;
use Sylius\SyliusRector\NodeManipulator\ClassInterfaceManipulator;
use Symplify\RuleDocGenerator\Exception\PoorDocumentationException;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand All @@ -27,9 +26,7 @@ public function __construct(
) {
}

/**
* @throws PoorDocumentationException
*/

public function getRuleDefinition(): RuleDefinition
{
return new RuleDefinition(
Expand All @@ -42,7 +39,8 @@ public function getRuleDefinition(): RuleDefinition
class Channel extends BaseChannel
{
}
CODE_SAMPLE,
CODE_SAMPLE
,
<<<CODE_SAMPLE
use Sylius\Component\Channel\Model\Channel as BaseChannel;

Expand Down Expand Up @@ -71,7 +69,7 @@ public function configure(array $configuration): void
public function refactor(Node $node): Node
{
foreach ($this->addInterfaceToClassExtendingTypeRectorConfig as $className => $interfaces) {
if (!$this->classInheritanceManipulator->isDerivative($node, $className)) {
if (! $this->classInheritanceManipulator->isDerivative($node, $className)) {
continue;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,12 @@
use PhpParser\Node\Stmt\Expression;
use PhpParser\Node\Stmt\TraitUse;
use Rector\Contract\Rector\ConfigurableRectorInterface;
use Rector\Exception\ShouldNotHappenException;
use Rector\NodeManipulator\ClassInsertManipulator;
use Rector\NodeManipulator\ClassManipulator;
use Rector\Rector\AbstractRector;
use Rector\ValueObject\MethodName;
use Sylius\SyliusRector\Node\NodeFactory;
use Sylius\SyliusRector\NodeFactory\ConstructorClassMethodFactory;
use Sylius\SyliusRector\Rector\Dto\AddMethodCallToConstructorForClassesUsingTrait;
use Symplify\RuleDocGenerator\Exception\PoorDocumentationException;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand All @@ -39,9 +36,7 @@ public function __construct(
) {
}

/**
* @throws PoorDocumentationException
*/

public function getRuleDefinition(): RuleDefinition
{
return new RuleDefinition(
Expand All @@ -55,7 +50,8 @@ class Channel extends BaseChannel
{
use \Sylius\MultiStorePlugin\CustomerPools\Domain\Model\CustomerPoolAwareTrait;
}
CODE_SAMPLE,
CODE_SAMPLE
,
<<<CODE_SAMPLE
use Sylius\Component\Core\Model\Channel as BaseChannel;

Expand Down Expand Up @@ -85,15 +81,17 @@ public function configure(array $configuration): void

/**
* @param Class_ $node
* @throws \Exception
*/
public function refactor(Node $node): Node
{
$newConstructorStmts = [];

foreach ($this->configuration as $structureName => $methodCallConfiguration) {
if (trait_exists($structureName)) {
$newConstructorStmts = array_merge($newConstructorStmts, $this->processTrait($node, $structureName, $methodCallConfiguration));
$newConstructorStmts = array_merge(
$newConstructorStmts,
$this->processTrait($node, $structureName, $methodCallConfiguration)
);

continue;
}
Expand All @@ -108,7 +106,7 @@ public function refactor(Node $node): Node
$constructor = $this->getOrCreateConstructorMethod($node);

foreach ($newConstructorStmts as $newConstructorStmt) {
if (!$newConstructorStmt instanceof Expression || !$newConstructorStmt->expr instanceof MethodCall) {
if (! $newConstructorStmt instanceof Expression || ! $newConstructorStmt->expr instanceof MethodCall) {
continue;
}

Expand Down Expand Up @@ -147,9 +145,7 @@ private function processTrait(Class_ $node, string $traitName, array $methodsCal
return $nodes;
}

/**
* @throws ShouldNotHappenException
*/

private function getOrCreateConstructorMethod(Class_ $node): ClassMethod
{
$constructor = $node->getMethod(MethodName::CONSTRUCT);
Expand All @@ -159,9 +155,7 @@ private function getOrCreateConstructorMethod(Class_ $node): ClassMethod
}

$constructor = $this->constructorClassMethodFactory->createConstructorClassMethod([], []);
$constructor->stmts = [
new Expression($this->syliusNodeFactory->createParentConstructWithParams([]))
];
$constructor->stmts = [new Expression($this->syliusNodeFactory->createParentConstructWithParams([]))];

$this->insertConstructorAfterTraits($node, $constructor);

Expand Down
16 changes: 7 additions & 9 deletions src/Rector/Class_/AddTraitToClassExtendingTypeRector.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
use Rector\Rector\AbstractRector;
use Sylius\SyliusRector\NodeManipulator\ClassInheritanceManipulator;
use Sylius\SyliusRector\NodeManipulator\TraitManipulator;
use Symplify\RuleDocGenerator\Exception\PoorDocumentationException;
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;

Expand All @@ -26,26 +25,25 @@ public function __construct(
private ClassInheritanceManipulator $classInheritanceManipulator,
private ClassManipulator $classManipulator,
private TraitManipulator $traitManipulator,
){
) {
}

/**
* @throws PoorDocumentationException
*/

public function getRuleDefinition(): RuleDefinition
{
return new RuleDefinition(
'Adds the given set of traits to the classes extending the given type',
[
new CodeSample(
<<<CODE_SAMPLE
<<<CODE_SAMPLE
use Sylius\Component\Channel\Model\Channel as BaseChannel;

class Channel extends BaseChannel
{
}
CODE_SAMPLE,
<<<CODE_SAMPLE
CODE_SAMPLE
,
<<<CODE_SAMPLE
use Sylius\Component\Channel\Model\Channel as BaseChannel;

class Channel extends BaseChannel implements \Sylius\MultiStorePlugin\BusinessUnits\Domain\Model\ChannelInterface
Expand Down Expand Up @@ -73,7 +71,7 @@ public function configure(array $configuration): void
public function refactor(Node $node): Node
{
foreach ($this->addTraitToClassExtendingTypeRectorConfig as $className => $traits) {
if (!$this->classInheritanceManipulator->isDerivative($node, $className)) {
if (! $this->classInheritanceManipulator->isDerivative($node, $className)) {
continue;
}

Expand Down
Loading
Loading