DDC-456: Wrong implementation of loading metadata from cache #567

Open
opened 2026-01-22 12:42:59 +01:00 by admin · 0 comments
Owner

Originally created by @doctrinebot on GitHub (Mar 22, 2010).

Jira issue originally created by user else:

Dear developers,
There's a bug on line starting with 146 of ClassMetadataFactory.php, which loaded only one element in _loadedMetadata if cache is enable and it cause problem when you use inheritance.

 if ($this->_cacheDriver {
                if (($cached = $this->_cacheDriver->fetch("$realClassName\$CLASSMETADATA")) !== false) {

                    $this->_loadedMetadata[$realClassName] = $cached;                // if it's found in cache it load only one element
                } else {
                    foreach ($this->_loadMetadata($realClassName) as $loadedClassName) {
                        $this->_cacheDriver->save(
                            "$loadedClassName\$CLASSMETADATA", $this->_loadedMetadata[$loadedClassName], null
                        );
                    }
                }
            } else {
                $this->*loadMetadata($realClassName);                                         // if cache is not enable same block load more element to *loadMetadata
            }

hope you undestand

Originally created by @doctrinebot on GitHub (Mar 22, 2010). Jira issue originally created by user else: Dear developers, There's a bug on line starting with 146 of ClassMetadataFactory.php, which loaded only one element in _loadedMetadata if cache is enable and it cause problem when you use inheritance. ``` if ($this->_cacheDriver { if (($cached = $this->_cacheDriver->fetch("$realClassName\$CLASSMETADATA")) !== false) { $this->_loadedMetadata[$realClassName] = $cached; // if it's found in cache it load only one element } else { foreach ($this->_loadMetadata($realClassName) as $loadedClassName) { $this->_cacheDriver->save( "$loadedClassName\$CLASSMETADATA", $this->_loadedMetadata[$loadedClassName], null ); } } } else { $this->*loadMetadata($realClassName); // if cache is not enable same block load more element to *loadMetadata } ``` hope you undestand
admin added the Bug label 2026-01-22 12:42:59 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: doctrine/archived-orm#567