name = $name; if (isset($values['dependencies']) && isset($values['dependencies']['enforced'])) { // Merge the enforced dependencies into the list of dependencies. $enforced_dependencies = $values['dependencies']['enforced']; unset($values['dependencies']['enforced']); $this->dependencies = NestedArray::mergeDeep($values['dependencies'], $enforced_dependencies); } elseif (isset($values['dependencies'])) { $this->dependencies = $values['dependencies']; } } /** * Gets the configuration entity's dependencies of the supplied type. * * @param string $type * The type of dependency to return. Either 'module', 'theme', 'config' or * 'content'. * * @return array * The list of dependencies of the supplied type. */ public function getDependencies($type) { $dependencies = []; if (isset($this->dependencies[$type])) { $dependencies = $this->dependencies[$type]; } if ($type == 'module') { $dependencies[] = substr($this->name, 0, strpos($this->name, '.')); } return $dependencies; } /** * Determines if the entity is dependent on extensions or entities. * * @param string $type * The type of dependency being checked. Either 'module', 'theme', 'config' * or 'content'. * @param string $name * The specific name to check. If $type equals 'module' or 'theme' then it * should be a module name or theme name. In the case of entity it should be * the full configuration object name. * * @return bool */ public function hasDependency($type, $name) { // A config entity is always dependent on its provider. if ($type == 'module' && strpos($this->name, $name . '.') === 0) { return TRUE; } return isset($this->dependencies[$type]) && array_search($name, $this->dependencies[$type]) !== FALSE; } /** * Gets the configuration entity's configuration dependency name. * * @see \Drupal\Core\Entity\EntityInterface::getConfigDependencyName() * * @return string * The configuration dependency name for the entity. */ public function getConfigDependencyName() { return $this->name; } }