doctrine / doctrine/persistence

DCOM-287: [GH-369] [RFC] Load parent classes when loading metadata from cache

Open
#27 1 comment 0 reactions 0 assignees View on GitHub
Bug
Dominant language
PHP
Stars
4k
Forks
76
Avg merge
3d 20h
Merged PRs (30d)
2

Description

Jira issue originally created by user @doctrinebot:

This issue is created automatically through a Github pull request on behalf of gonzalovilaseca:

Url: https://github.com/doctrine/common/pull/369

Message:

This can be done more neatly, but before putting more time in it I'd like to check if it's a good idea.
I came across this solution because we had a problem with Gedmo extensions when caching metadata in Redis, this is our scenario:

```
Class A extends B;
```

`Class B` has a `Gedmo extension` mapped field.

On first request metadata for both `Class A` and `Class B` is cached in Redis.

On second request `AbstractClassMetadataFactory` loads `Class A` from Redis.

Gedmo extension loops through all `Class A` parents and calls method `hasMetadataFor($parentClass)` in `AbstractClassMetadataFactory`, only `Class A` metadata has been loaded previously, therefore `hasMetadataFor($parentClass)` returns false, and `Gedmo` then skips the parent class.

Should Gedmo exension load the metadata for the parent class or should it be done as proposed in this PR?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.