Mercurial > hg > isophonics-drupal-site
view core/lib/Drupal/Core/Entity/DependencyTrait.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\Core\Entity; /** * Provides a trait for managing an object's dependencies. */ trait DependencyTrait { /** * The object's dependencies. * * @var array */ protected $dependencies = []; /** * Adds a dependency. * * @param string $type * Type of dependency being added: 'module', 'theme', 'config', 'content'. * @param string $name * If $type is 'module' or 'theme', the name of the module or theme. If * $type is 'config' or 'content', the result of * EntityInterface::getConfigDependencyName(). * * @see \Drupal\Core\Entity\EntityInterface::getConfigDependencyName() * * @return $this */ protected function addDependency($type, $name) { if (empty($this->dependencies[$type])) { $this->dependencies[$type] = [$name]; if (count($this->dependencies) > 1) { // Ensure a consistent order of type keys. ksort($this->dependencies); } } elseif (!in_array($name, $this->dependencies[$type])) { $this->dependencies[$type][] = $name; // Ensure a consistent order of dependency names. sort($this->dependencies[$type], SORT_FLAG_CASE); } return $this; } /** * Adds multiple dependencies. * * @param array $dependencies * An array of dependencies keyed by the type of dependency. One example: * @code * array( * 'module' => array( * 'node', * 'field', * 'image', * ), * ); * @endcode * * @see \Drupal\Core\Entity\DependencyTrait::addDependency */ protected function addDependencies(array $dependencies) { foreach ($dependencies as $dependency_type => $list) { foreach ($list as $name) { $this->addDependency($dependency_type, $name); } } } }