Refactored code to use PHP8 attributes instead of annotations

In this change, Doctrine and validation annotations have been replaced with PHP8 Attributes. The Rector tool has been configured with a list of annotations to convert to attributes. As a consequence, the PHPStan's rules have been updated to reflect these changes. The PHP8's nullable operator (?) has been added where required, and comments in field declaration have been replaced with #[Attribute] syntax.
This commit is contained in:
2024-04-08 12:11:29 +02:00
parent 0ff4593863
commit 5be85a4fc6
35 changed files with 164 additions and 531 deletions

View File

@@ -28,13 +28,10 @@ use Symfony\Component\Serializer\Annotation as Serializer;
*
* The property `$deleteAt` allow a deletion of the document after the given date. But this property should
* be set before the document is actually written by the StoredObjectManager.
*
* @AsyncFileExists(
* message="The file is not stored properly"
* )
*/
#[ORM\Entity]
#[ORM\Table('chill_doc.stored_object')]
#[AsyncFileExists(message: 'The file is not stored properly')]
class StoredObject implements Document, TrackCreationInterface
{
use TrackCreationTrait;

View File

@@ -13,13 +13,17 @@ namespace Chill\DocStoreBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
/**
* @Annotation
*/
#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::TARGET_METHOD | \Attribute::TARGET_PROPERTY)]
final class AsyncFileExists extends Constraint
{
public string $message = "The file '{{ filename }}' is not stored properly.";
public function __construct(?array $options = null, ?string $message = null, ?array $groups = null, $payload = null)
{
parent::__construct($options ?? [], $groups, $payload);
$this->message = $message;
}
public function validatedBy()
{
return AsyncFileExistsValidator::class;