From 8f605c652a85d33c7145997722f7aac22c33312e Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Wed, 26 Oct 2022 15:09:12 +0200 Subject: [PATCH 1/3] Remove reference to deprecated DriverChain from docs (#10179) --- docs/en/reference/advanced-configuration.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/en/reference/advanced-configuration.rst b/docs/en/reference/advanced-configuration.rst index a27d277ff37..eedba2e6a76 100644 --- a/docs/en/reference/advanced-configuration.rst +++ b/docs/en/reference/advanced-configuration.rst @@ -404,15 +404,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 -YAML. You can use the DriverChain Metadata implementations to +YAML. 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($yamlDriver, 'Doctrine\Tests\ORM\Mapping'); From 552d98d554f3ffc7adc8469f4e223753364cb775 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Wed, 26 Oct 2022 15:12:52 +0200 Subject: [PATCH 2/3] Bump CI to PHP 8.2 and latest database versions (#10180) --- .github/workflows/continuous-integration.yml | 40 +++++++------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 42df06e5361..423cdecdbea 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -47,11 +47,11 @@ jobs: - php-version: "8.0" dbal-version: "2.13" extension: "pdo_sqlite" - - php-version: "8.1" + - php-version: "8.2" dbal-version: "3@dev" extension: "pdo_sqlite" - - php-version: "8.1" - dbal-version: "3@dev" + - php-version: "8.2" + dbal-version: "default" extension: "sqlite3" steps: @@ -102,19 +102,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.0" dbal-version: "2.13" postgres-version: "14" - php-version: "8.2" - dbal-version: "3@dev" - postgres-version: "14" + dbal-version: "default" + postgres-version: "9.6" services: postgres: @@ -168,11 +168,12 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.2" dbal-version: - "default" + - "3@dev" mariadb-version: - - "10.6" + - "10.9" extension: - "mysqli" - "pdo_mysql" @@ -181,14 +182,6 @@ jobs: dbal-version: "2.13" mariadb-version: "10.6" extension: "pdo_mysql" - - 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: @@ -244,9 +237,10 @@ jobs: strategy: matrix: php-version: - - "8.1" + - "8.2" dbal-version: - "default" + - "3@dev" mysql-version: - "5.7" - "8.0" @@ -258,14 +252,6 @@ jobs: dbal-version: "2.13" 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: From 543be3fe35c963a6eb240df61307ebb9c1023e04 Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Wed, 26 Oct 2022 21:51:46 +0200 Subject: [PATCH 3/3] Deprecate the Annotation interface (#10178) --- UPGRADE.md | 4 ++++ lib/Doctrine/ORM/Mapping/Annotation.php | 1 + lib/Doctrine/ORM/Mapping/AssociationOverride.php | 2 +- lib/Doctrine/ORM/Mapping/AssociationOverrides.php | 2 +- lib/Doctrine/ORM/Mapping/AttributeOverride.php | 2 +- lib/Doctrine/ORM/Mapping/AttributeOverrides.php | 2 +- lib/Doctrine/ORM/Mapping/Cache.php | 2 +- lib/Doctrine/ORM/Mapping/ChangeTrackingPolicy.php | 2 +- lib/Doctrine/ORM/Mapping/Column.php | 2 +- lib/Doctrine/ORM/Mapping/ColumnResult.php | 2 +- lib/Doctrine/ORM/Mapping/CustomIdGenerator.php | 2 +- lib/Doctrine/ORM/Mapping/DiscriminatorColumn.php | 2 +- lib/Doctrine/ORM/Mapping/DiscriminatorMap.php | 2 +- .../ORM/Mapping/Driver/DoctrineAnnotations.php | 1 + lib/Doctrine/ORM/Mapping/Embeddable.php | 2 +- lib/Doctrine/ORM/Mapping/Embedded.php | 2 +- lib/Doctrine/ORM/Mapping/Entity.php | 2 +- lib/Doctrine/ORM/Mapping/EntityListeners.php | 2 +- lib/Doctrine/ORM/Mapping/EntityResult.php | 2 +- lib/Doctrine/ORM/Mapping/FieldResult.php | 2 +- lib/Doctrine/ORM/Mapping/GeneratedValue.php | 2 +- lib/Doctrine/ORM/Mapping/HasLifecycleCallbacks.php | 2 +- lib/Doctrine/ORM/Mapping/Id.php | 2 +- lib/Doctrine/ORM/Mapping/Index.php | 2 +- lib/Doctrine/ORM/Mapping/InheritanceType.php | 2 +- lib/Doctrine/ORM/Mapping/InverseJoinColumn.php | 2 +- lib/Doctrine/ORM/Mapping/JoinColumn.php | 2 +- lib/Doctrine/ORM/Mapping/JoinColumns.php | 2 +- lib/Doctrine/ORM/Mapping/JoinTable.php | 2 +- lib/Doctrine/ORM/Mapping/ManyToMany.php | 2 +- lib/Doctrine/ORM/Mapping/ManyToOne.php | 2 +- lib/Doctrine/ORM/Mapping/MappedSuperclass.php | 2 +- lib/Doctrine/ORM/Mapping/MappingAttribute.php | 10 ++++++++++ lib/Doctrine/ORM/Mapping/NamedNativeQueries.php | 2 +- lib/Doctrine/ORM/Mapping/NamedNativeQuery.php | 2 +- lib/Doctrine/ORM/Mapping/NamedQueries.php | 2 +- lib/Doctrine/ORM/Mapping/NamedQuery.php | 2 +- lib/Doctrine/ORM/Mapping/OneToMany.php | 2 +- lib/Doctrine/ORM/Mapping/OneToOne.php | 2 +- lib/Doctrine/ORM/Mapping/OrderBy.php | 2 +- lib/Doctrine/ORM/Mapping/PostLoad.php | 2 +- lib/Doctrine/ORM/Mapping/PostPersist.php | 2 +- lib/Doctrine/ORM/Mapping/PostRemove.php | 2 +- lib/Doctrine/ORM/Mapping/PostUpdate.php | 2 +- lib/Doctrine/ORM/Mapping/PreFlush.php | 2 +- lib/Doctrine/ORM/Mapping/PrePersist.php | 2 +- lib/Doctrine/ORM/Mapping/PreRemove.php | 2 +- lib/Doctrine/ORM/Mapping/PreUpdate.php | 2 +- lib/Doctrine/ORM/Mapping/SequenceGenerator.php | 2 +- lib/Doctrine/ORM/Mapping/SqlResultSetMapping.php | 2 +- lib/Doctrine/ORM/Mapping/SqlResultSetMappings.php | 2 +- lib/Doctrine/ORM/Mapping/Table.php | 2 +- lib/Doctrine/ORM/Mapping/UniqueConstraint.php | 2 +- lib/Doctrine/ORM/Mapping/Version.php | 2 +- psalm.xml | 4 ++++ .../Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php | 4 ++-- 56 files changed, 72 insertions(+), 52 deletions(-) create mode 100644 lib/Doctrine/ORM/Mapping/MappingAttribute.php diff --git a/UPGRADE.md b/UPGRADE.md index 1a0466ab016..db7c21c9cb0 100644 --- a/UPGRADE.md +++ b/UPGRADE.md @@ -18,6 +18,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/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 65c1922b97e..c946b89f416 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 name of the relationship property whose mapping is being overridden. diff --git a/lib/Doctrine/ORM/Mapping/AssociationOverrides.php b/lib/Doctrine/ORM/Mapping/AssociationOverrides.php index 33f2a8265a2..3e430f8b3e7 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 e18e0cf958d..e18a5357b2f 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 { /** * The name of the property whose mapping is being overridden. diff --git a/lib/Doctrine/ORM/Mapping/AttributeOverrides.php b/lib/Doctrine/ORM/Mapping/AttributeOverrides.php index 6f2f9bd962e..1330310f4b9 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 090658d7891..76f0fca0571 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 { /** * The concurrency strategy. diff --git a/lib/Doctrine/ORM/Mapping/ChangeTrackingPolicy.php b/lib/Doctrine/ORM/Mapping/ChangeTrackingPolicy.php index fb23eb0be8e..854a82f4e6f 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 { /** * The change tracking policy. diff --git a/lib/Doctrine/ORM/Mapping/Column.php b/lib/Doctrine/ORM/Mapping/Column.php index 332942074f1..8e967f0e284 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/ColumnResult.php b/lib/Doctrine/ORM/Mapping/ColumnResult.php index 86bd0471cb3..20c90d1e08e 100644 --- a/lib/Doctrine/ORM/Mapping/ColumnResult.php +++ b/lib/Doctrine/ORM/Mapping/ColumnResult.php @@ -11,7 +11,7 @@ * @Annotation * @Target("ANNOTATION") */ -final class ColumnResult implements Annotation +final class ColumnResult implements MappingAttribute { /** * The name of a column in the SELECT clause of a SQL query. diff --git a/lib/Doctrine/ORM/Mapping/CustomIdGenerator.php b/lib/Doctrine/ORM/Mapping/CustomIdGenerator.php index 9d727a1fa96..3c2268008eb 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/DiscriminatorColumn.php b/lib/Doctrine/ORM/Mapping/DiscriminatorColumn.php index a23cdce945a..5088aada08d 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/DiscriminatorMap.php b/lib/Doctrine/ORM/Mapping/DiscriminatorMap.php index 49d4e5e3b06..6c12a5fdcad 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 { /** * @var array diff --git a/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php b/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php index ae5d78ba1da..9c169a1fba7 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 43a4bd6b5bd..e090e033e1b 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/Entity.php b/lib/Doctrine/ORM/Mapping/Entity.php index a1c2946e7dc..30f9394bfa1 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/EntityListeners.php b/lib/Doctrine/ORM/Mapping/EntityListeners.php index f1a80aeeea1..73a4cffe015 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 { /** * Specifies the names of the entity listeners. diff --git a/lib/Doctrine/ORM/Mapping/EntityResult.php b/lib/Doctrine/ORM/Mapping/EntityResult.php index 3db8471fe12..2ffcce52be3 100644 --- a/lib/Doctrine/ORM/Mapping/EntityResult.php +++ b/lib/Doctrine/ORM/Mapping/EntityResult.php @@ -13,7 +13,7 @@ * @Annotation * @Target("ANNOTATION") */ -final class EntityResult implements Annotation +final class EntityResult implements MappingAttribute { /** * The class of the result. diff --git a/lib/Doctrine/ORM/Mapping/FieldResult.php b/lib/Doctrine/ORM/Mapping/FieldResult.php index 12588f4904a..e26065d6481 100644 --- a/lib/Doctrine/ORM/Mapping/FieldResult.php +++ b/lib/Doctrine/ORM/Mapping/FieldResult.php @@ -10,7 +10,7 @@ * @Annotation * @Target("ANNOTATION") */ -final class FieldResult implements Annotation +final class FieldResult implements MappingAttribute { /** * Name of the column in the SELECT clause. diff --git a/lib/Doctrine/ORM/Mapping/GeneratedValue.php b/lib/Doctrine/ORM/Mapping/GeneratedValue.php index d9dd200914d..a8d9f1dbf0c 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 { /** * The type of ID generator. 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 4c1192973d8..39ae78e9f17 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/InheritanceType.php b/lib/Doctrine/ORM/Mapping/InheritanceType.php index 33db6a95aae..acd4d649166 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 { /** * The inheritance type used by the class and its subclasses. 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 d00bdcc5834..49a1c2aadf3 100644 --- a/lib/Doctrine/ORM/Mapping/JoinColumns.php +++ b/lib/Doctrine/ORM/Mapping/JoinColumns.php @@ -8,7 +8,7 @@ * @Annotation * @Target("PROPERTY") */ -final class JoinColumns implements Annotation +final class JoinColumns implements MappingAttribute { /** @var array<\Doctrine\ORM\Mapping\JoinColumn> */ public $value; diff --git a/lib/Doctrine/ORM/Mapping/JoinTable.php b/lib/Doctrine/ORM/Mapping/JoinTable.php index e13868636e5..a28ac433598 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 string|null diff --git a/lib/Doctrine/ORM/Mapping/ManyToMany.php b/lib/Doctrine/ORM/Mapping/ManyToMany.php index 6789d810ac6..c0f5638cd7f 100644 --- a/lib/Doctrine/ORM/Mapping/ManyToMany.php +++ b/lib/Doctrine/ORM/Mapping/ManyToMany.php @@ -14,7 +14,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class ManyToMany implements Annotation +final class ManyToMany implements MappingAttribute { /** * @var class-string|null diff --git a/lib/Doctrine/ORM/Mapping/ManyToOne.php b/lib/Doctrine/ORM/Mapping/ManyToOne.php index 0db86ed1bf5..3bf155b41c1 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 { /** * @var class-string|null diff --git a/lib/Doctrine/ORM/Mapping/MappedSuperclass.php b/lib/Doctrine/ORM/Mapping/MappedSuperclass.php index b375eae5d27..6f3f7b30207 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 { /** * @var string|null 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 @@ + */ public $value; diff --git a/lib/Doctrine/ORM/Mapping/NamedQuery.php b/lib/Doctrine/ORM/Mapping/NamedQuery.php index 382f70d3124..f57e8e8d80e 100644 --- a/lib/Doctrine/ORM/Mapping/NamedQuery.php +++ b/lib/Doctrine/ORM/Mapping/NamedQuery.php @@ -8,7 +8,7 @@ * @Annotation * @Target("ANNOTATION") */ -final class NamedQuery implements Annotation +final class NamedQuery implements MappingAttribute { /** @var string */ public $name; diff --git a/lib/Doctrine/ORM/Mapping/OneToMany.php b/lib/Doctrine/ORM/Mapping/OneToMany.php index dd67f91cbbe..c3ffa16da27 100644 --- a/lib/Doctrine/ORM/Mapping/OneToMany.php +++ b/lib/Doctrine/ORM/Mapping/OneToMany.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class OneToMany implements Annotation +final class OneToMany implements MappingAttribute { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/OneToOne.php b/lib/Doctrine/ORM/Mapping/OneToOne.php index 6b7cb7c570b..075be0efda2 100644 --- a/lib/Doctrine/ORM/Mapping/OneToOne.php +++ b/lib/Doctrine/ORM/Mapping/OneToOne.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class OneToOne implements Annotation +final class OneToOne implements MappingAttribute { /** * @var class-string|null diff --git a/lib/Doctrine/ORM/Mapping/OrderBy.php b/lib/Doctrine/ORM/Mapping/OrderBy.php index fa8c33bbaaa..e7a0ad184bb 100644 --- a/lib/Doctrine/ORM/Mapping/OrderBy.php +++ b/lib/Doctrine/ORM/Mapping/OrderBy.php @@ -13,7 +13,7 @@ * @Target("PROPERTY") */ #[Attribute(Attribute::TARGET_PROPERTY)] -final class OrderBy implements Annotation +final class OrderBy implements MappingAttribute { /** * @var array 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 4c14fb616c5..22a6e2406f5 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/SqlResultSetMapping.php b/lib/Doctrine/ORM/Mapping/SqlResultSetMapping.php index 3e50a032a33..9cc91d6213d 100644 --- a/lib/Doctrine/ORM/Mapping/SqlResultSetMapping.php +++ b/lib/Doctrine/ORM/Mapping/SqlResultSetMapping.php @@ -11,7 +11,7 @@ * @Annotation * @Target("ANNOTATION") */ -final class SqlResultSetMapping implements Annotation +final class SqlResultSetMapping implements MappingAttribute { /** * The name given to the result set mapping, and used to refer to it in the methods of the Query API. diff --git a/lib/Doctrine/ORM/Mapping/SqlResultSetMappings.php b/lib/Doctrine/ORM/Mapping/SqlResultSetMappings.php index 13e7a16365e..79ad0280674 100644 --- a/lib/Doctrine/ORM/Mapping/SqlResultSetMappings.php +++ b/lib/Doctrine/ORM/Mapping/SqlResultSetMappings.php @@ -11,7 +11,7 @@ * @Annotation * @Target("CLASS") */ -final class SqlResultSetMappings implements Annotation +final class SqlResultSetMappings implements MappingAttribute { /** * One or more SqlResultSetMapping annotations. diff --git a/lib/Doctrine/ORM/Mapping/Table.php b/lib/Doctrine/ORM/Mapping/Table.php index bea89f18dd6..cd0f81e0725 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 { /** * @var string|null diff --git a/lib/Doctrine/ORM/Mapping/UniqueConstraint.php b/lib/Doctrine/ORM/Mapping/UniqueConstraint.php index 1963183eacf..4e7bdc8c6bc 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 { /** * @var string|null 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 949204d6cac..e98dab7e832 100644 --- a/psalm.xml +++ b/psalm.xml @@ -39,6 +39,8 @@ + + @@ -52,7 +54,9 @@ + + diff --git a/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php b/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php index 5f6ded297a8..971d230f2e2 100644 --- a/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php +++ b/tests/Doctrine/Tests/ORM/Mapping/AttributeDriverTest.php @@ -6,8 +6,8 @@ use Attribute; use Doctrine\ORM\Mapping as ORM; -use Doctrine\ORM\Mapping\Annotation; use Doctrine\ORM\Mapping\Driver\AttributeDriver; +use Doctrine\ORM\Mapping\MappingAttribute; use Doctrine\Persistence\Mapping\Driver\AnnotationDriver as PersistenceAnnotationDriver; use Doctrine\Persistence\Mapping\Driver\MappingDriver; use stdClass; @@ -149,7 +149,7 @@ class AttributeEntityStartingWithRepeatableAttributes } #[Attribute(Attribute::IS_REPEATABLE | Attribute::TARGET_ALL)] -class AttributeTransientAnnotation implements Annotation +class AttributeTransientAnnotation implements MappingAttribute { }