diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index d0e45cca929..35299ffc9a5 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -40,14 +40,14 @@ jobs: extension: - "pdo_sqlite" include: - - php-version: "8.1" + - php-version: "8.2" dbal-version: "3@dev" extension: "pdo_sqlite" - php-version: "8.1" dbal-version: "4@dev" extension: "pdo_sqlite" - - php-version: "8.1" - dbal-version: "3@dev" + - php-version: "8.2" + dbal-version: "default" extension: "sqlite3" steps: @@ -98,19 +98,19 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.2" dbal-version: - "default" + - "3@dev" postgres-version: - - "9.6" - - "14" + - "15" include: - - php-version: "8.1" + - php-version: "8.2" dbal-version: "4@dev" postgres-version: "14" - php-version: "8.2" - dbal-version: "3@dev" - postgres-version: "14" + dbal-version: "default" + postgres-version: "9.6" services: postgres: @@ -164,24 +164,16 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.2" dbal-version: - "default" + - "3@dev" - "4@dev" mariadb-version: - - "10.6" + - "10.9" extension: - "mysqli" - "pdo_mysql" - include: - - php-version: "8.2" - dbal-version: "3@dev" - mariadb-version: "10.6" - extension: "pdo_mysql" - - php-version: "8.2" - dbal-version: "3@dev" - mariadb-version: "10.6" - extension: "mysqli" services: mariadb: @@ -237,9 +229,10 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.2" dbal-version: - "default" + - "3@dev" mysql-version: - "5.7" - "8.0" @@ -255,14 +248,6 @@ jobs: dbal-version: "4@dev" mysql-version: "8.0" extension: "pdo_mysql" - - php-version: "8.2" - dbal-version: "3@dev" - mysql-version: "8.0" - extension: "mysqli" - - php-version: "8.2" - dbal-version: "3@dev" - mysql-version: "8.0" - extension: "pdo_mysql" services: mysql: diff --git a/UPGRADE.md b/UPGRADE.md index 1a74500d518..ed0618ec14a 100644 --- a/UPGRADE.md +++ b/UPGRADE.md @@ -525,6 +525,10 @@ As a consequence, the following methods are deprecated: - `ORMSetup::createAnnotationMetadataConfiguration` - `ORMSetup::createDefaultAnnotationDriver` +The marker interface `Doctrine\ORM\Mapping\Annotation` is deprecated as well. +All annotation/attribute classes implement +`Doctrine\ORM\Mapping\MappingAttribute` now. + ## Deprecated `Doctrine\ORM\Proxy\Proxy` interface. Use `Doctrine\Persistence\Proxy` instead to check whether proxies are initialized. diff --git a/docs/en/reference/advanced-configuration.rst b/docs/en/reference/advanced-configuration.rst index 5cd920cc177..91547506471 100644 --- a/docs/en/reference/advanced-configuration.rst +++ b/docs/en/reference/advanced-configuration.rst @@ -399,15 +399,15 @@ Multiple Metadata Sources When using different components using Doctrine ORM you may end up with them using two different metadata drivers, for example XML and -PHP. You can use the DriverChain Metadata implementations to +PHP. You can use the MappingDriverChain Metadata implementations to aggregate these drivers based on namespaces: .. code-block:: php addDriver($xmlDriver, 'Doctrine\Tests\Models\Company'); $chain->addDriver($phpDriver, 'Doctrine\Tests\ORM\Mapping'); diff --git a/lib/Doctrine/ORM/Mapping/Annotation.php b/lib/Doctrine/ORM/Mapping/Annotation.php index e6ed11e1789..65223a070f6 100644 --- a/lib/Doctrine/ORM/Mapping/Annotation.php +++ b/lib/Doctrine/ORM/Mapping/Annotation.php @@ -4,6 +4,7 @@ namespace Doctrine\ORM\Mapping; +/** @deprecated Use {@see MappingAttribute} instead. */ interface Annotation { } diff --git a/lib/Doctrine/ORM/Mapping/AssociationOverride.php b/lib/Doctrine/ORM/Mapping/AssociationOverride.php index 885eb964cd5..650795524bc 100644 --- a/lib/Doctrine/ORM/Mapping/AssociationOverride.php +++ b/lib/Doctrine/ORM/Mapping/AssociationOverride.php @@ -11,7 +11,7 @@ * @NamedArgumentConstructor * @Target("ANNOTATION") */ -final class AssociationOverride implements Annotation +final class AssociationOverride implements MappingAttribute { /** * The join column that is being mapped to the persistent attribute. diff --git a/lib/Doctrine/ORM/Mapping/AssociationOverrides.php b/lib/Doctrine/ORM/Mapping/AssociationOverrides.php index 364a431e416..f7b84f0d018 100644 --- a/lib/Doctrine/ORM/Mapping/AssociationOverrides.php +++ b/lib/Doctrine/ORM/Mapping/AssociationOverrides.php @@ -17,7 +17,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class AssociationOverrides implements Annotation +final class AssociationOverrides implements MappingAttribute { /** * Mapping overrides of relationship properties. diff --git a/lib/Doctrine/ORM/Mapping/AttributeOverride.php b/lib/Doctrine/ORM/Mapping/AttributeOverride.php index 9db5e63db32..a862c726ea6 100644 --- a/lib/Doctrine/ORM/Mapping/AttributeOverride.php +++ b/lib/Doctrine/ORM/Mapping/AttributeOverride.php @@ -11,7 +11,7 @@ * @NamedArgumentConstructor * @Target("ANNOTATION") */ -final class AttributeOverride implements Annotation +final class AttributeOverride implements MappingAttribute { public function __construct( public string $name, diff --git a/lib/Doctrine/ORM/Mapping/AttributeOverrides.php b/lib/Doctrine/ORM/Mapping/AttributeOverrides.php index ede2c71918b..95bc97fa0cf 100644 --- a/lib/Doctrine/ORM/Mapping/AttributeOverrides.php +++ b/lib/Doctrine/ORM/Mapping/AttributeOverrides.php @@ -17,7 +17,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class AttributeOverrides implements Annotation +final class AttributeOverrides implements MappingAttribute { /** * One or more field or property mapping overrides. diff --git a/lib/Doctrine/ORM/Mapping/Cache.php b/lib/Doctrine/ORM/Mapping/Cache.php index c7572fc481d..698eb94ae22 100644 --- a/lib/Doctrine/ORM/Mapping/Cache.php +++ b/lib/Doctrine/ORM/Mapping/Cache.php @@ -15,7 +15,7 @@ * @Target({"CLASS","PROPERTY"}) */ #[Attribute(Attribute::TARGET_CLASS | Attribute::TARGET_PROPERTY)] -final class Cache implements Annotation +final class Cache implements MappingAttribute { /** @psalm-param 'READ_ONLY'|'NONSTRICT_READ_WRITE'|'READ_WRITE' $usage */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/ChangeTrackingPolicy.php b/lib/Doctrine/ORM/Mapping/ChangeTrackingPolicy.php index 08032518269..cb4067ca9bc 100644 --- a/lib/Doctrine/ORM/Mapping/ChangeTrackingPolicy.php +++ b/lib/Doctrine/ORM/Mapping/ChangeTrackingPolicy.php @@ -13,7 +13,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class ChangeTrackingPolicy implements Annotation +final class ChangeTrackingPolicy implements MappingAttribute { /** @psalm-param 'DEFERRED_IMPLICIT'|'DEFERRED_EXPLICIT'|'NOTIFY' $value */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/Column.php b/lib/Doctrine/ORM/Mapping/Column.php index f9c019a2327..722040a8790 100644 --- a/lib/Doctrine/ORM/Mapping/Column.php +++ b/lib/Doctrine/ORM/Mapping/Column.php @@ -14,7 +14,7 @@ * @Target({"PROPERTY","ANNOTATION"}) */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class Column implements Annotation +final class Column implements MappingAttribute { /** * @param int|null $precision The precision for a decimal (exact numeric) column (Applies only for decimal column). diff --git a/lib/Doctrine/ORM/Mapping/CustomIdGenerator.php b/lib/Doctrine/ORM/Mapping/CustomIdGenerator.php index ccf1592b528..7ba5bea956f 100644 --- a/lib/Doctrine/ORM/Mapping/CustomIdGenerator.php +++ b/lib/Doctrine/ORM/Mapping/CustomIdGenerator.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class CustomIdGenerator implements Annotation +final class CustomIdGenerator implements MappingAttribute { public function __construct( public readonly string|null $class = null, diff --git a/lib/Doctrine/ORM/Mapping/DiscriminatorColumn.php b/lib/Doctrine/ORM/Mapping/DiscriminatorColumn.php index a8f1f19d90e..59259566bb6 100644 --- a/lib/Doctrine/ORM/Mapping/DiscriminatorColumn.php +++ b/lib/Doctrine/ORM/Mapping/DiscriminatorColumn.php @@ -13,7 +13,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class DiscriminatorColumn implements Annotation +final class DiscriminatorColumn implements MappingAttribute { public function __construct( public readonly string|null $name = null, diff --git a/lib/Doctrine/ORM/Mapping/DiscriminatorMap.php b/lib/Doctrine/ORM/Mapping/DiscriminatorMap.php index 2c5ccb0aa37..39b05e2b908 100644 --- a/lib/Doctrine/ORM/Mapping/DiscriminatorMap.php +++ b/lib/Doctrine/ORM/Mapping/DiscriminatorMap.php @@ -13,7 +13,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class DiscriminatorMap implements Annotation +final class DiscriminatorMap implements MappingAttribute { /** @param array $value */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php b/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php index 2e19dd354a2..2a9c8e519ff 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php +++ b/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php @@ -3,6 +3,7 @@ declare(strict_types=1); require_once __DIR__ . '/../Annotation.php'; +require_once __DIR__ . '/../MappingAttribute.php'; require_once __DIR__ . '/../Entity.php'; require_once __DIR__ . '/../Embeddable.php'; require_once __DIR__ . '/../Embedded.php'; diff --git a/lib/Doctrine/ORM/Mapping/Embeddable.php b/lib/Doctrine/ORM/Mapping/Embeddable.php index 7fa9c3be388..a950da6b04a 100644 --- a/lib/Doctrine/ORM/Mapping/Embeddable.php +++ b/lib/Doctrine/ORM/Mapping/Embeddable.php @@ -11,6 +11,6 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class Embeddable implements Annotation +final class Embeddable implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/Embedded.php b/lib/Doctrine/ORM/Mapping/Embedded.php index 3a0961dc580..70aa0c54b50 100644 --- a/lib/Doctrine/ORM/Mapping/Embedded.php +++ b/lib/Doctrine/ORM/Mapping/Embedded.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class Embedded implements Annotation +final class Embedded implements MappingAttribute { public function __construct( public readonly string|null $class = null, diff --git a/lib/Doctrine/ORM/Mapping/Entity.php b/lib/Doctrine/ORM/Mapping/Entity.php index ffdaf38748d..fd14819d629 100644 --- a/lib/Doctrine/ORM/Mapping/Entity.php +++ b/lib/Doctrine/ORM/Mapping/Entity.php @@ -15,7 +15,7 @@ * @template T of object */ #[Attribute(Attribute::TARGET_CLASS)] -final class Entity implements Annotation +final class Entity implements MappingAttribute { /** @psalm-param class-string>|null $repositoryClass */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/EntityListeners.php b/lib/Doctrine/ORM/Mapping/EntityListeners.php index aacf11c5044..12926b956c8 100644 --- a/lib/Doctrine/ORM/Mapping/EntityListeners.php +++ b/lib/Doctrine/ORM/Mapping/EntityListeners.php @@ -16,7 +16,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class EntityListeners implements Annotation +final class EntityListeners implements MappingAttribute { /** @param array $value */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/GeneratedValue.php b/lib/Doctrine/ORM/Mapping/GeneratedValue.php index 9acb4228ffe..baba0f41b03 100644 --- a/lib/Doctrine/ORM/Mapping/GeneratedValue.php +++ b/lib/Doctrine/ORM/Mapping/GeneratedValue.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class GeneratedValue implements Annotation +final class GeneratedValue implements MappingAttribute { /** @psalm-param 'AUTO'|'SEQUENCE'|'IDENTITY'|'NONE'|'CUSTOM' $strategy */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/HasLifecycleCallbacks.php b/lib/Doctrine/ORM/Mapping/HasLifecycleCallbacks.php index 61e4e419707..b4700e9c18e 100644 --- a/lib/Doctrine/ORM/Mapping/HasLifecycleCallbacks.php +++ b/lib/Doctrine/ORM/Mapping/HasLifecycleCallbacks.php @@ -11,6 +11,6 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class HasLifecycleCallbacks implements Annotation +final class HasLifecycleCallbacks implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/Id.php b/lib/Doctrine/ORM/Mapping/Id.php index 1455a0812e5..c09a7d49138 100644 --- a/lib/Doctrine/ORM/Mapping/Id.php +++ b/lib/Doctrine/ORM/Mapping/Id.php @@ -11,6 +11,6 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class Id implements Annotation +final class Id implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/Index.php b/lib/Doctrine/ORM/Mapping/Index.php index b2f7fdae778..09b074a0cb3 100644 --- a/lib/Doctrine/ORM/Mapping/Index.php +++ b/lib/Doctrine/ORM/Mapping/Index.php @@ -13,7 +13,7 @@ * @Target("ANNOTATION") */ #[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] -final class Index implements Annotation +final class Index implements MappingAttribute { /** * @param array|null $columns diff --git a/lib/Doctrine/ORM/Mapping/InheritanceType.php b/lib/Doctrine/ORM/Mapping/InheritanceType.php index bfad4349f33..373e7d26b8f 100644 --- a/lib/Doctrine/ORM/Mapping/InheritanceType.php +++ b/lib/Doctrine/ORM/Mapping/InheritanceType.php @@ -13,7 +13,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class InheritanceType implements Annotation +final class InheritanceType implements MappingAttribute { /** @psalm-param 'NONE'|'JOINED'|'SINGLE_TABLE'|'TABLE_PER_CLASS' $value */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/InverseJoinColumn.php b/lib/Doctrine/ORM/Mapping/InverseJoinColumn.php index c9109470f4b..89c8db0006b 100644 --- a/lib/Doctrine/ORM/Mapping/InverseJoinColumn.php +++ b/lib/Doctrine/ORM/Mapping/InverseJoinColumn.php @@ -8,7 +8,7 @@ use Attribute; #[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)] -final class InverseJoinColumn implements Annotation +final class InverseJoinColumn implements MappingAttribute { use JoinColumnProperties; } diff --git a/lib/Doctrine/ORM/Mapping/JoinColumn.php b/lib/Doctrine/ORM/Mapping/JoinColumn.php index ac97fe6f4c6..6a048e8bf66 100644 --- a/lib/Doctrine/ORM/Mapping/JoinColumn.php +++ b/lib/Doctrine/ORM/Mapping/JoinColumn.php @@ -13,7 +13,7 @@ * @Target({"PROPERTY","ANNOTATION"}) */ #[Attribute(Attribute::TARGET_PROPERTY | Attribute::IS_REPEATABLE)] -final class JoinColumn implements Annotation +final class JoinColumn implements MappingAttribute { use JoinColumnProperties; } diff --git a/lib/Doctrine/ORM/Mapping/JoinColumns.php b/lib/Doctrine/ORM/Mapping/JoinColumns.php index 30388931780..f6ee0a616d6 100644 --- a/lib/Doctrine/ORM/Mapping/JoinColumns.php +++ b/lib/Doctrine/ORM/Mapping/JoinColumns.php @@ -9,7 +9,7 @@ * @NamedArgumentConstructor * @Target("PROPERTY") */ -final class JoinColumns implements Annotation +final class JoinColumns implements MappingAttribute { /** @param array $value */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/JoinTable.php b/lib/Doctrine/ORM/Mapping/JoinTable.php index ca10bac706a..fbf3be620f9 100644 --- a/lib/Doctrine/ORM/Mapping/JoinTable.php +++ b/lib/Doctrine/ORM/Mapping/JoinTable.php @@ -13,7 +13,7 @@ * @Target({"PROPERTY","ANNOTATION"}) */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class JoinTable implements Annotation +final class JoinTable implements MappingAttribute { /** @var array */ public readonly array $joinColumns; diff --git a/lib/Doctrine/ORM/Mapping/ManyToMany.php b/lib/Doctrine/ORM/Mapping/ManyToMany.php index abc11265f05..bfb97550487 100644 --- a/lib/Doctrine/ORM/Mapping/ManyToMany.php +++ b/lib/Doctrine/ORM/Mapping/ManyToMany.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class ManyToMany implements Annotation +final class ManyToMany implements MappingAttribute { /** * @param class-string $targetEntity diff --git a/lib/Doctrine/ORM/Mapping/ManyToOne.php b/lib/Doctrine/ORM/Mapping/ManyToOne.php index b573a93e2e6..59a1ac9f5bf 100644 --- a/lib/Doctrine/ORM/Mapping/ManyToOne.php +++ b/lib/Doctrine/ORM/Mapping/ManyToOne.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class ManyToOne implements Annotation +final class ManyToOne implements MappingAttribute { /** * @param class-string|null $targetEntity diff --git a/lib/Doctrine/ORM/Mapping/MappedSuperclass.php b/lib/Doctrine/ORM/Mapping/MappedSuperclass.php index 519f82d4034..e45896cead3 100644 --- a/lib/Doctrine/ORM/Mapping/MappedSuperclass.php +++ b/lib/Doctrine/ORM/Mapping/MappedSuperclass.php @@ -14,7 +14,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class MappedSuperclass implements Annotation +final class MappedSuperclass implements MappingAttribute { /** @psalm-param class-string|null $repositoryClass */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/MappingAttribute.php b/lib/Doctrine/ORM/Mapping/MappingAttribute.php new file mode 100644 index 00000000000..979d5031744 --- /dev/null +++ b/lib/Doctrine/ORM/Mapping/MappingAttribute.php @@ -0,0 +1,10 @@ + $value */ public function __construct( diff --git a/lib/Doctrine/ORM/Mapping/PostLoad.php b/lib/Doctrine/ORM/Mapping/PostLoad.php index 6e9c0a8bf2d..0b2d063e896 100644 --- a/lib/Doctrine/ORM/Mapping/PostLoad.php +++ b/lib/Doctrine/ORM/Mapping/PostLoad.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PostLoad implements Annotation +final class PostLoad implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/PostPersist.php b/lib/Doctrine/ORM/Mapping/PostPersist.php index 621daa47c45..d28ac86c797 100644 --- a/lib/Doctrine/ORM/Mapping/PostPersist.php +++ b/lib/Doctrine/ORM/Mapping/PostPersist.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PostPersist implements Annotation +final class PostPersist implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/PostRemove.php b/lib/Doctrine/ORM/Mapping/PostRemove.php index f1f66cdd22b..9b7e1c40ae4 100644 --- a/lib/Doctrine/ORM/Mapping/PostRemove.php +++ b/lib/Doctrine/ORM/Mapping/PostRemove.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PostRemove implements Annotation +final class PostRemove implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/PostUpdate.php b/lib/Doctrine/ORM/Mapping/PostUpdate.php index ef08996e6af..771c2db731d 100644 --- a/lib/Doctrine/ORM/Mapping/PostUpdate.php +++ b/lib/Doctrine/ORM/Mapping/PostUpdate.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PostUpdate implements Annotation +final class PostUpdate implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/PreFlush.php b/lib/Doctrine/ORM/Mapping/PreFlush.php index 4cb5fbc680e..50dfa703000 100644 --- a/lib/Doctrine/ORM/Mapping/PreFlush.php +++ b/lib/Doctrine/ORM/Mapping/PreFlush.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PreFlush implements Annotation +final class PreFlush implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/PrePersist.php b/lib/Doctrine/ORM/Mapping/PrePersist.php index 66451a7950f..ab4e4d54a9d 100644 --- a/lib/Doctrine/ORM/Mapping/PrePersist.php +++ b/lib/Doctrine/ORM/Mapping/PrePersist.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PrePersist implements Annotation +final class PrePersist implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/PreRemove.php b/lib/Doctrine/ORM/Mapping/PreRemove.php index 83cd3361397..68c69157b76 100644 --- a/lib/Doctrine/ORM/Mapping/PreRemove.php +++ b/lib/Doctrine/ORM/Mapping/PreRemove.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PreRemove implements Annotation +final class PreRemove implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/PreUpdate.php b/lib/Doctrine/ORM/Mapping/PreUpdate.php index 5b634c049f6..b6f2fcda624 100644 --- a/lib/Doctrine/ORM/Mapping/PreUpdate.php +++ b/lib/Doctrine/ORM/Mapping/PreUpdate.php @@ -11,6 +11,6 @@ * @Target("METHOD") */ #[Attribute(Attribute::TARGET_METHOD)] -final class PreUpdate implements Annotation +final class PreUpdate implements MappingAttribute { } diff --git a/lib/Doctrine/ORM/Mapping/SequenceGenerator.php b/lib/Doctrine/ORM/Mapping/SequenceGenerator.php index 5564a8463d9..9054e7c9ab4 100644 --- a/lib/Doctrine/ORM/Mapping/SequenceGenerator.php +++ b/lib/Doctrine/ORM/Mapping/SequenceGenerator.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class SequenceGenerator implements Annotation +final class SequenceGenerator implements MappingAttribute { public function __construct( public readonly string|null $sequenceName = null, diff --git a/lib/Doctrine/ORM/Mapping/Table.php b/lib/Doctrine/ORM/Mapping/Table.php index 2ba38d78b1e..b9ae8f3ae92 100644 --- a/lib/Doctrine/ORM/Mapping/Table.php +++ b/lib/Doctrine/ORM/Mapping/Table.php @@ -13,7 +13,7 @@ * @Target("CLASS") */ #[Attribute(Attribute::TARGET_CLASS)] -final class Table implements Annotation +final class Table implements MappingAttribute { /** * @param array $indexes diff --git a/lib/Doctrine/ORM/Mapping/UniqueConstraint.php b/lib/Doctrine/ORM/Mapping/UniqueConstraint.php index fdb8cb3db94..353126b14a3 100644 --- a/lib/Doctrine/ORM/Mapping/UniqueConstraint.php +++ b/lib/Doctrine/ORM/Mapping/UniqueConstraint.php @@ -13,7 +13,7 @@ * @Target("ANNOTATION") */ #[Attribute(Attribute::TARGET_CLASS | Attribute::IS_REPEATABLE)] -final class UniqueConstraint implements Annotation +final class UniqueConstraint implements MappingAttribute { /** * @param array|null $columns diff --git a/lib/Doctrine/ORM/Mapping/Version.php b/lib/Doctrine/ORM/Mapping/Version.php index b5ccae55209..7f87e1d7a7c 100644 --- a/lib/Doctrine/ORM/Mapping/Version.php +++ b/lib/Doctrine/ORM/Mapping/Version.php @@ -11,6 +11,6 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class Version implements Annotation +final class Version implements MappingAttribute { } diff --git a/psalm.xml b/psalm.xml index 6f11cbb315d..29ec9db6779 100644 --- a/psalm.xml +++ b/psalm.xml @@ -24,8 +24,16 @@ + + + + + + + + diff --git a/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php b/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php index c91c125b819..594d9ea89ca 100644 --- a/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php +++ b/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php @@ -7,6 +7,7 @@ use Attribute; use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping\Driver\AttributeDriver; +use Doctrine\ORM\Mapping\MappingAttribute; use Doctrine\Persistence\Mapping\Driver\MappingDriver; use stdClass; @@ -74,7 +75,7 @@ class AttributeEntityStartingWithRepeatableAttributes } #[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_ALL)] -class AttributeTransientAttribute +class AttributeTransientAttribute implements MappingAttribute { }