From 6f1c9d84822ea3369b9ffcd15a82fc40fa5490a0 Mon Sep 17 00:00:00 2001 From: Jan Skrasek Date: Fri, 3 Jun 2022 21:19:37 +0200 Subject: [PATCH] relationships: implement generic HasMany & HasOne relationships Latest PHPStorm 2022.2 EAP supports proper enumation of generic Traverable, so completely migrating to HasMany syntax. --- .idea/codeStyles/Project.xml | 2 + composer.json | 4 +- src/Entity/Embeddable/EmbeddableContainer.php | 3 + src/Entity/IEntityAwareProperty.php | 7 ++- src/Entity/Reflection/MetadataParser.php | 1 + src/Relationships/HasMany.php | 58 +++++++++++++------ src/Relationships/HasOne.php | 42 +++++++++++--- src/Relationships/IRelationshipCollection.php | 15 ++++- src/Relationships/IRelationshipContainer.php | 10 +++- src/Relationships/ManyHasMany.php | 7 ++- src/Relationships/ManyHasOne.php | 5 ++ src/Relationships/OneHasMany.php | 7 ++- src/Relationships/OneHasOne.php | 6 +- src/Repository/IRepository.php | 1 + src/Repository/PersistenceHelper.php | 8 +-- src/Repository/RemovalHelper.php | 8 +-- src/Repository/Repository.php | 2 - .../Relationships/entity.relationships.phpt | 10 ++-- .../relationships.HasManyCollection.phpt | 2 +- .../relationships.manyHasMany.collection.phpt | 2 +- .../relationships.manyHasMany.phpt | 8 +-- .../relationships.oneHasMany.collection.phpt | 2 +- tests/inc/model/author/Author.php | 22 +++---- tests/inc/model/book/Book.php | 4 +- tests/inc/model/contents/Thread.php | 4 +- .../model/contents/ThreadCommentCommon.php | 4 +- tests/inc/model/log/Log.php | 2 +- tests/inc/model/photoAlbum/PhotoAlbum.php | 10 ++-- tests/inc/model/publisher/Publisher.php | 14 ++--- tests/inc/model/tag/Tag.php | 14 ++--- tests/inc/model/tagFollower/TagFollower.php | 6 +- tests/inc/model/user/User.php | 8 +-- 32 files changed, 193 insertions(+), 105 deletions(-) diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index d0b4672a..0ca00efa 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -3,6 +3,8 @@