Find the best Rector rule to solve your problem. Searching through 661 rules.
Found 10 rules:
Change annotations with value to attribute
use PHPUnit\Framework\TestCase;
+use PHPUnit\Framework\Attributes\Ticket;
-/**
- * @ticket 123
- */
+#[Ticket('123')]
final class SomeTest extends TestCase
{
}
Change covers annotations with value to attribute
use PHPUnit\Framework\TestCase;
+use PHPUnit\Framework\Attributes\CoversClass;
+use PHPUnit\Framework\Attributes\CoversFunction;
-/**
- * @covers SomeClass
- */
+#[CoversClass(SomeClass::class)]
+#[CoversFunction('someFunction')]
final class SomeTest extends TestCase
{
- /**
- * @covers ::someFunction()
- */
public function test()
{
}
}
Change Requires annotations with values to attributes
use PHPUnit\Framework\TestCase;
-/**
- * @requires PHP > 8.4
- * @requires PHPUnit >= 10
- * @requires OS Windows
- * @requires OSFAMILY Darwin
- * @requires function someFunction
- * @requires function \some\className::someMethod
- * @requires extension mysqli
- * @requires extension mysqli >= 8.3.0
- * @requires setting date.timezone Europe/Berlin
- */
-
+#[\PHPUnit\Framework\Attributes\RequiresPhp('> 8.4')]
+#[\PHPUnit\Framework\Attributes\RequiresPhpunit('>= 10')]
+#[\PHPUnit\Framework\Attributes\RequiresOperatingSystem('Windows')]
+#[\PHPUnit\Framework\Attributes\RequiresOperatingSystemFamily('Darwin')]
+#[\PHPUnit\Framework\Attributes\RequiresFunction('someFunction')]
+#[\PHPUnit\Framework\Attributes\RequiresMethod(\some\className::class, 'someMethod')]
+#[\PHPUnit\Framework\Attributes\RequiresPhpExtension('mysqli')]
+#[\PHPUnit\Framework\Attributes\RequiresPhpExtension('mysqli', '>= 8.3.0')]
+#[\PHPUnit\Framework\Attributes\RequiresSetting('date.timezone', 'Europe/Berlin')]
final class SomeTest extends TestCase
{
- /**
- * @requires PHP > 8.4
- * @requires PHPUnit >= 10
- * @requires OS Windows
- * @requires OSFAMILY Darwin
- * @requires function someFunction
- * @requires function \some\className::someMethod
- * @requires extension mysqli
- * @requires extension mysqli >= 8.3.0
- * @requires setting date.timezone Europe/Berlin
- */
+
+ #[\PHPUnit\Framework\Attributes\RequiresPhp('> 8.4')]
+ #[\PHPUnit\Framework\Attributes\RequiresPhpunit('>= 10')]
+ #[\PHPUnit\Framework\Attributes\RequiresOperatingSystem('Windows')]
+ #[\PHPUnit\Framework\Attributes\RequiresOperatingSystemFamily('Darwin')]
+ #[\PHPUnit\Framework\Attributes\RequiresFunction('someFunction')]
+ #[\PHPUnit\Framework\Attributes\RequiresMethod(\some\className::class, 'someMethod')]
+ #[\PHPUnit\Framework\Attributes\RequiresPhpExtension('mysqli')]
+ #[\PHPUnit\Framework\Attributes\RequiresPhpExtension('mysqli', '>= 8.3.0')]
+ #[\PHPUnit\Framework\Attributes\RequiresSetting('date.timezone', 'Europe/Berlin')]
public function test()
{
}
}
Change annotations with value to attribute
use PHPUnit\Framework\TestCase;
+use PHPUnit\Framework\Attributes\BackupGlobals;
-/**
- * @backupGlobals enabled
- */
+#[BackupGlobals(true)]
final class SomeTest extends TestCase
{
}
Change depends annotations with value to attribute
use PHPUnit\Framework\TestCase;
final class SomeTest extends TestCase
{
public function testOne() {}
- /**
- * @depends testOne
- */
+ #[\PHPUnit\Framework\Attributes\Depends('testOne')]
public function testThree(): void
{
}
}
Change @testWith() annotation to #[TestWith] attribute
use PHPUnit\Framework\TestCase;
+use PHPUnit\Framework\Attributes\TestWith;
final class SomeFixture extends TestCase
{
- /**
- * @testWith ["foo"]
- * ["bar"]
- */
+ #[TestWith(['foo'])]
+ #[TestWith(['bar'])]
public function test(): void
{
}
}
Change dataProvider annotations to attribute
use PHPUnit\Framework\TestCase;
final class SomeTest extends TestCase
{
- /**
- * @dataProvider someMethod()
- */
+ #[\PHPUnit\Framework\Attributes\DataProvider('someMethod')]
public function test(): void
{
}
}
Changed nested annotations to attributes
use Doctrine\ORM\Mapping as ORM;
class SomeEntity
{
- /**
- * @ORM\JoinTable(name="join_table_name",
- * joinColumns={@ORM\JoinColumn(name="origin_id")},
- * inverseJoinColumns={@ORM\JoinColumn(name="target_id")}
- * )
- */
+ #[ORM\JoinTable(name: 'join_table_name')]
+ #[ORM\JoinColumn(name: 'origin_id')]
+ #[ORM\InverseJoinColumn(name: 'target_id')]
private $collection;
}
Change Symfony Command with execute() + configure() to __invoke() with attributes
-use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
-use Symfony\Component\Console\Input\InputInterface;
-use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Input\InputArgument;
-use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Command\Argument;
+use Symfony\Component\Console\Command\Option;
-#[AsCommand(name: 'some_name')]
-final class SomeCommand extends Command
+final class SomeCommand
{
- public function configure()
- {
- $this->addArgument('argument', InputArgument::REQUIRED, 'Argument description');
- $this->addOption('option', 'o', InputOption::VALUE_NONE, 'Option description');
- }
-
- public function execute(InputInterface $input, OutputInterface $output)
- {
- $someArgument = $input->getArgument('argument');
- $someOption = $input->getOption('option');
+ public function __invoke(
+ #[Argument]
+ string $argument,
+ #[Option]
+ bool $option = false,
+ ) {
+ $someArgument = $argument;
+ $someOption = $option;
// ...
return 1;
}
}
Change explicit configuration parameter pass into #[Autowire] attributes
+use Symfony\Component\DependencyInjection\Attribute\Autowire;
+
final class SomeClass
{
public function __construct(
+ #[Autowire(param: 'timeout')]
private int $timeout,
+ #[Autowire(env: 'APP_SECRET')]
private string $secret,
) {
}
}