Skip to content

Commit

Permalink
Fixed eav_config_entity throwing error message on removed entity model (
Browse files Browse the repository at this point in the history
#3338)

* fix eav_config_entity throwing error message on removed entity model

* fix phpcs

* fix exception message capitalization

* fix log message capitalization

---------

Co-authored-by: Fabrizio Balliano <fabrizio.balliano@gmail.com>
  • Loading branch information
davidhiendl and fballiano committed Jun 25, 2023
1 parent b4cee73 commit 97e200d
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions app/code/core/Mage/Eav/Model/Config.php
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,23 @@ protected function _loadEntityTypes()
$this->_entityTypes = [];
$this->_entityTypeByCode = [];
$entityTypeCollection = Mage::getResourceModel('eav/entity_type_collection');

/** @var Mage_Eav_Model_Entity_Type $entityType */
foreach ($entityTypeCollection as $entityType) {
// Ensure eav entity type model class is defined, otherwise skip processing it.
// This check prevents leftover eav_entity_type entries from disabled/removed modules creating errors and
// is necessary because the entire EAV model is now loaded eagerly for performance optimization.
$entityModelClass = $entityType['entity_model'];
$fqEntityModelClass = Mage::getConfig()->getModelClassName($entityModelClass);
if (!class_exists($fqEntityModelClass)) {
if (Mage::getIsDeveloperMode()) {
throw new Exception('Failed loading of eav entity type because it does not exist: ' . $entityModelClass);
} else {
Mage::log('Skipped loading of eav entity type because it does not exist: ' . $entityModelClass);
}
continue;
}

$this->_entityTypes[$entityType->getId()] = $entityType;
$this->_entityTypeByCode[$entityType->getEntityTypeCode()] = $entityType;
}
Expand Down

0 comments on commit 97e200d

Please sign in to comment.