mirror of
https://github.com/filamentphp/filament.git
synced 2026-10-28 03:44:19 +08:00
refactor
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace Filament\Upgrade\Forms;
|
||||
namespace Filament\Upgrade\Rectors;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\ArrowFunction;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace Filament\Upgrade\App;
|
||||
namespace Filament\Upgrade\Rectors;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Name;
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace Filament\Upgrade\Rectors;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\ArrowFunction;
|
||||
use PhpParser\Node\Expr\Closure;
|
||||
use PhpParser\Node\Name;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use Rector\Core\Rector\AbstractRector;
|
||||
use Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample;
|
||||
use Symplify\RuleDocGenerator\ValueObject\RuleDefinition;
|
||||
|
||||
class ReplaceParentClassRector extends AbstractRector
|
||||
{
|
||||
/**
|
||||
* @return array<class-string, class-string>
|
||||
*/
|
||||
public function getChanges(): array
|
||||
{
|
||||
return [
|
||||
'Filament\\PluginServiceProvider' => 'Spatie\\LaravelPackageTools\\PackageServiceProvider',
|
||||
'Filament\\Resources\\RelationManagers\\BelongsToManyRelationManager' => 'Filament\\Resources\\RelationManagers\\RelationManager',
|
||||
'Filament\\Resources\\RelationManagers\\HasManyRelationManager' => 'Filament\\Resources\\RelationManagers\\RelationManager',
|
||||
'Filament\\Resources\\RelationManagers\\HasManyThroughRelationManager' => 'Filament\\Resources\\RelationManagers\\RelationManager',
|
||||
'Filament\\Resources\\RelationManagers\\MorphManyRelationManager' => 'Filament\\Resources\\RelationManagers\\RelationManager',
|
||||
'Filament\\Resources\\RelationManagers\\MorphToManyRelationManager' => 'Filament\\Resources\\RelationManagers\\RelationManager',
|
||||
];
|
||||
}
|
||||
|
||||
public function getNodeTypes(): array
|
||||
{
|
||||
return [Class_::class];
|
||||
}
|
||||
|
||||
public function refactor(Node $node): ?Node
|
||||
{
|
||||
/** @var Class_ $node */
|
||||
$changes = $this->getChanges();
|
||||
|
||||
foreach ($changes as $parentClassToRemove => $parentClassToAdd) {
|
||||
if (! $this->isName($node->extends, $parentClassToRemove)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$node->extends = new Name("\\{$parentClassToAdd}");
|
||||
|
||||
return $node;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getRuleDefinition(): RuleDefinition
|
||||
{
|
||||
return new RuleDefinition(
|
||||
'Replace the parent class with another',
|
||||
[
|
||||
new CodeSample(
|
||||
'MembersRelationManager extends BelongsToManyRelationManager',
|
||||
'MembersRelationManager extends RelationManager',
|
||||
),
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace Filament\Upgrade;
|
||||
namespace Filament\Upgrade\Rectors;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\Expr\MethodCall;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace Filament\Upgrade\App;
|
||||
namespace Filament\Upgrade\Rectors;
|
||||
|
||||
use Closure;
|
||||
use PhpParser\Node;
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace Filament\Upgrade\App;
|
||||
namespace Filament\Upgrade\Rectors;
|
||||
|
||||
use Closure;
|
||||
use PhpParser\Node;
|
||||
@@ -1,20 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Filament\Upgrade\App\MoveImportedClassesRector;
|
||||
use Filament\Upgrade\App\SimpleMethodChangesRector;
|
||||
use Filament\Upgrade\App\SimplePropertyChangesRector;
|
||||
use Filament\Upgrade\Forms\FixGetSetClosureTypesRector;
|
||||
use Filament\Upgrade\SecondaryToGrayColorRector;
|
||||
use Filament\Upgrade\Rectors;
|
||||
use Rector\Config\RectorConfig;
|
||||
use Rector\Removing\Rector\Class_\RemoveTraitUseRector;
|
||||
use Rector\Renaming\Rector\String_\RenameStringRector;
|
||||
|
||||
return static function (RectorConfig $rectorConfig): void {
|
||||
$rectorConfig->rules([
|
||||
FixGetSetClosureTypesRector::class,
|
||||
MoveImportedClassesRector::class,
|
||||
SecondaryToGrayColorRector::class,
|
||||
SimpleMethodChangesRector::class,
|
||||
SimplePropertyChangesRector::class,
|
||||
Rectors\FixGetSetClosureTypesRector::class,
|
||||
Rectors\MoveImportedClassesRector::class,
|
||||
Rectors\ReplaceParentClassRector::class,
|
||||
Rectors\SecondaryToGrayColorRector::class,
|
||||
Rectors\SimpleMethodChangesRector::class,
|
||||
Rectors\SimplePropertyChangesRector::class,
|
||||
]);
|
||||
|
||||
$rectorConfig->ruleWithConfiguration(RemoveTraitUseRector::class, [
|
||||
'Filament\\Http\\Livewire\\Concerns\\CanNotify',
|
||||
'Filament\\Resources\\Pages\\ListRecords\\Concerns\\CanCreateRecords',
|
||||
'Filament\\Resources\\Pages\\ListRecords\\Concerns\\CanDeleteRecords',
|
||||
'Filament\\Resources\\Pages\\ListRecords\\Concerns\\CanEditRecords',
|
||||
'Filament\\Resources\\Pages\\ListRecords\\Concerns\\CanViewRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanAssociateRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanAttachRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanCreateRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanDeleteRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanDetachRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanDisassociateRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanEditRecords',
|
||||
'Filament\\Resources\\RelationManagers\\Concerns\\CanViewRecords',
|
||||
]);
|
||||
|
||||
$rectorConfig->ruleWithConfiguration(
|
||||
|
||||
Reference in New Issue
Block a user