ergebnis/rector-rules
A curated set of custom Rector rules from ergebnis to automate PHP refactoring and style consistency. Includes rules for sorting arrays and match arms, simplifying call arguments, Faker updates, namespace symbol references, and PHPUnit attribute-to-prefix changes.
Files\ReferenceNamespacedSymbolsRelativeToNamespacePrefixRectorReplaces references to namespaced symbols (classes, functions, constants) whose fully-qualified name starts with a namespace prefix so they are relative to that prefix.
discoverNamespacePrefixesAutomatically discover namespace prefixes by scanning the file's references and extracting their first segment.
boolfalseforceRelativeReferencesForce references to be expressed relative to the namespace prefix even when the file namespace matches the prefix.
boolfalsenamespacePrefixesA list of namespace prefixes to consolidate.
list<string>[]parentNamespacePrefixesA list of parent namespace prefixes for automatic discovery of namespace prefixes per file.
list<string>[]Configuration:
namespacePrefixes: ['Foo\Bar\Baz']-use Foo\Bar;
-use Foo\Bar\Baz\Qux;
+use Foo\Bar\Baz;
-new Bar\Baz\Qux\Quuz();
-new Qux\Quuz\Grauply();
+new Baz\Qux\Quuz();
+new Baz\Qux\Quuz\Grauply();
Configuration:
namespacePrefixes: ['Example\Core\Routing', 'Example\Domain', 'Psr\Http'] namespace Example\App;
-use Example\Core\Routing\Attribute\Route;
-use Example\Domain\UserRepository;
-use Psr\Http\Message\ResponseInterface;
+use Example\Core\Routing;
+use Example\Domain;
+use Psr\Http;
final class ExampleController
{
- private UserRepository $userRepository;
+ private Domain\UserRepository $userRepository;
- #[Route(path: '/example', name: 'example')]
- public function dashboard(): ResponseInterface
+ #[Routing\Attribute\Route(path: '/example', name: 'example')]
+ public function dashboard(): Http\Message\ResponseInterface
{
}
}
Configuration:
parentNamespacePrefixes: ['Example'] namespace Example\App;
-use Example\Core\Controller\AbstractController;
+use Example\Core;
-final class ExampleController extends AbstractController
+final class ExampleController extends Core\Controller\AbstractController
{
}
Configuration:
namespacePrefixes: ['Example\Core\Routing']parentNamespacePrefixes: ['Example'] namespace Example\App;
-use Example\Core\Controller\AbstractController;
-use Example\Core\Routing\Attribute\Route;
+use Example\Core;
+use Example\Core\Routing;
-final class ExampleController extends AbstractController
+final class ExampleController extends Core\Controller\AbstractController
{
- #[Route(path: '/example', name: 'example')]
+ #[Routing\Attribute\Route(path: '/example', name: 'example')]
public function dashboard()
{
}
}
Configuration:
namespacePrefixes: ['Example\Core\Routing', 'Example\Core', 'Example\Core\Caching\Redis'] namespace Example\App;
-use Example\Core\Caching\Redis\Connection;
-use Example\Core\Controller\AbstractController;
-use Example\Core\Routing\Attribute\Route;
+use Example\Core\Caching\Redis;
+use Example\Core;
+use Example\Core\Routing;
-final class ExampleController extends AbstractController
+final class ExampleController extends Core\Controller\AbstractController
{
- #[Route(path: '/example', name: 'example')]
- #[Connection(host: 'localhost')]
+ #[Routing\Attribute\Route(path: '/example', name: 'example')]
+ #[Redis\Connection(host: 'localhost')]
public function dashboard()
{
}
}
Configuration:
forceRelativeReferences: truenamespacePrefixes: ['Example\Core'] namespace Example\Core\Bar;
-use Example\Core\Bar\Baz;
-use Example\Core\Bar\Baz\Qux;
-use Example\Core\Quz;
+use Example\Core;
final class ExampleService
{
public function __construct(
- private Baz $baz,
- private Qux $qux,
- private Quz $quz,
+ private Core\Bar\Baz $baz,
+ private Core\Bar\Baz\Qux $qux,
+ private Core\Quz $quz,
) {
}
}
Configuration:
discoverNamespacePrefixes: true namespace App;
-use Ramsey\Uuid\Uuid;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
+use Ramsey\Uuid;
+use Symfony\Component;
final class Kernel
{
- public function handle(Request $request): Response
+ public function handle(Component\HttpFoundation\Request $request): Component\HttpFoundation\Response
{
- $id = Uuid::uuid4();
+ $id = Uuid\Uuid::uuid4();
}
}
How can I help you explore Laravel packages today?