public function EntityTraitManager::detectConflicts in Commerce Core 8.2
Detects conflicts between the given trait and the installed traits.
A conflict exists if the given trait has a field with a name that's already taken by a field from an installed trait.
Parameters
\Drupal\commerce\Plugin\Commerce\EntityTrait\EntityTraitInterface $trait: The trait.
\Drupal\commerce\Plugin\Commerce\EntityTrait\EntityTraitInterface[] $installed_traits: The installed traits.
Overrides EntityTraitManagerInterface::detectConflicts
File
- src/
EntityTraitManager.php, line 75
Class
- EntityTraitManager
- Manages discovery and instantiation of entity trait plugins.
Namespace
Drupal\commerceCode
public function detectConflicts(EntityTraitInterface $trait, array $installed_traits) {
$field_names = array_keys($trait
->buildFieldDefinitions());
if (!$field_names) {
return [];
}
$conflicting_traits = [];
foreach ($installed_traits as $installed_trait) {
$installed_field_names = array_keys($installed_trait
->buildFieldDefinitions());
if (array_intersect($field_names, $installed_field_names)) {
$conflicting_traits[] = $installed_trait;
}
}
return $conflicting_traits;
}