class FeaturesBundle in Features 8.3
Same name and namespace in other branches
- 8.4 src/Entity/FeaturesBundle.php \Drupal\features\Entity\FeaturesBundle
Defines a features bundle.
@todo Better description
Plugin annotation
@ConfigEntityType(
id = "features_bundle",
label = @Translation("Features bundle"),
handlers = {
},
admin_permission = "administer site configuration",
config_prefix = "bundle",
entity_keys = {
"id" = "machine_name",
"label" = "name"
},
links = {
},
config_export = {
"name",
"machine_name",
"description",
"assignments",
"profile_name",
"is_profile",
}
)
Hierarchy
- class \Drupal\Core\Entity\EntityBase implements EntityInterface uses RefinableCacheableDependencyTrait, DependencySerializationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
- class \Drupal\features\Entity\FeaturesBundle implements FeaturesBundleInterface
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
Expanded class hierarchy of FeaturesBundle
4 files declare their use of FeaturesBundle
- FeaturesBundleIntegrationTest.php in tests/
src/ Kernel/ Entity/ FeaturesBundleIntegrationTest.php - FeaturesBundleTest.php in tests/
src/ Unit/ FeaturesBundleTest.php - FeaturesGenerateTest.php in tests/
src/ Kernel/ FeaturesGenerateTest.php - FeaturesManagerTest.php in tests/
src/ Unit/ FeaturesManagerTest.php
File
- src/
Entity/ FeaturesBundle.php, line 37
Namespace
Drupal\features\EntityView source
class FeaturesBundle extends ConfigEntityBase implements FeaturesBundleInterface {
/**
* The variable.
*
* @var string
*/
protected $name;
/**
* The variable.
*
* @var
*/
protected $machine_name;
/**
* The variable.
*
* @var string
*/
protected $description;
/**
* The variable.
*
* @var string[]
*/
protected $assignments = [];
/**
* The variable.
*
* @var string
*/
protected $profile_name;
/**
* The variable.
*
* @var bool
*/
protected $is_profile = FALSE;
/**
* {@inheritDoc}
*/
public function id() {
// @todo Convert it to $this->id in the long run.
return $this
->getMachineName();
}
/**
* {@inheritdoc}
*/
public function isDefault() {
return $this->machine_name == static::DEFAULT_BUNDLE;
}
/**
* {@inheritdoc}
*/
public function getMachineName() {
return $this->machine_name;
}
/**
* {@inheritdoc}
*/
public function setMachineName($machine_name) {
$this->machine_name = $machine_name;
}
/**
* {@inheritdoc}
*/
public function getName() {
return $this->name;
}
/**
* {@inheritdoc}
*/
public function setName($name) {
$this->name = $name;
}
/**
* {@inheritdoc}
*/
public function getFullName($short_name) {
if ($this
->isDefault() || $this
->inBundle($short_name) || $this
->isProfilePackage($short_name)) {
return $short_name;
}
else {
return $this->machine_name . '_' . $short_name;
}
}
/**
* {@inheritdoc}
*/
public function getShortName($machine_name) {
if (!$this
->isProfilePackage($machine_name) && $this
->inBundle($machine_name)) {
return substr($machine_name, strlen($this
->getMachineName()) + 1, strlen($machine_name) - strlen($this
->getMachineName()) - 1);
}
return $machine_name;
}
/**
* {@inheritdoc}
*/
public function inBundle($machine_name) {
return $this
->isProfilePackage($machine_name) || strpos($machine_name, $this->machine_name . '_') === 0;
}
/**
* {@inheritdoc}
*/
public function isProfilePackage($machine_name) {
return $this
->isProfile() && $machine_name == $this
->getProfileName();
}
/**
* {@inheritdoc}
*/
public function getDescription() {
return $this->description;
}
/**
* {@inheritdoc}
*/
public function setDescription($description) {
$this->description = $description;
}
/**
* {@inheritdoc}
*/
public function isProfile() {
return $this->is_profile;
}
/**
* {@inheritdoc}
*/
public function setIsProfile($value) {
$this->is_profile = $value;
}
/**
* {@inheritdoc}
*/
public function getProfileName() {
$name = $this
->isProfile() ? $this->profile_name : '';
// Use Settings::get to fetch current profile name so we can easily test.
return !empty($name) ? $name : Settings::get('install_profile');
}
/**
* {@inheritdoc}
*/
public function setProfileName($machine_name) {
$this->profile_name = $machine_name;
}
/**
* {@inheritdoc}
*/
public function getEnabledAssignments() {
$list = [];
foreach ($this->assignments as $method_id => $method) {
if ($method['enabled']) {
$list[$method_id] = $method_id;
}
}
return $list;
}
/**
* {@inheritdoc}
*/
public function setEnabledAssignments(array $assignments) {
// Add any new assignments that we don't yet know about.
$new_assignments = array_diff($assignments, array_keys($this->assignments));
foreach ($new_assignments as $method_id) {
$this->assignments[$method_id] = $this
->getAssignmentSettings($method_id);
}
foreach ($this->assignments as $method_id => &$method) {
$method['enabled'] = in_array($method_id, $assignments);
}
}
/**
* {@inheritdoc}
*/
public function getAssignmentWeights() {
$list = [];
foreach ($this->assignments as $method_id => $method) {
$list[$method_id] = $method['weight'];
}
return $list;
}
/**
* {@inheritdoc}
*/
public function setAssignmentWeights(array $assignments) {
foreach ($this->assignments as $method_id => &$method) {
if (isset($assignments[$method_id])) {
$method['weight'] = $assignments[$method_id];
}
}
}
/**
* Return array of default settings for the given plugin method.
*
* @param $method_id
*
* @return array
*/
protected function getDefaultSettings($method_id) {
$settings = [
'enabled' => FALSE,
'weight' => 0,
];
$manager = \Drupal::service('plugin.manager.features_assignment_method');
$definition = $manager
->getDefinition($method_id);
if (isset($definition['weight'])) {
$settings['weight'] = $definition['weight'];
}
if (isset($definition['default_settings'])) {
$settings += $definition['default_settings'];
}
return $settings;
}
/**
* {@inheritdoc}
*/
public function getAssignmentSettings($method_id = NULL) {
if (isset($method_id)) {
if (isset($this->assignments[$method_id])) {
return $this->assignments[$method_id];
}
else {
// Use defaults.
return $this
->getDefaultSettings($method_id);
}
}
else {
$list = [];
foreach (array_keys($this->assignments) as $method_id) {
$list[$method_id] = $this
->getAssignmentSettings($method_id);
}
return $list;
}
}
/**
* {@inheritdoc}
*/
public function setAssignmentSettings($method_id, array $settings) {
if (isset($method_id)) {
$this->assignments[$method_id] = $settings;
}
else {
foreach ($settings as $method_id => $method_settings) {
if (!empty($method_settings)) {
$this
->setAssignmentSettings($method_id, $method_settings);
}
}
}
return $this;
}
/**
* {@inheritdoc}
*/
public function remove() {
$this
->delete();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CacheableDependencyTrait:: |
protected | property | Cache contexts. | |
CacheableDependencyTrait:: |
protected | property | Cache max-age. | |
CacheableDependencyTrait:: |
protected | property | Cache tags. | |
CacheableDependencyTrait:: |
protected | function | Sets cacheability; useful for value object constructors. | |
ConfigEntityBase:: |
private | property | Whether the config is being deleted by the uninstall process. | |
ConfigEntityBase:: |
protected | property | The language code of the entity's default language. | |
ConfigEntityBase:: |
protected | property | The original ID of the configuration entity. | |
ConfigEntityBase:: |
protected | property | The enabled/disabled status of the configuration entity. | 4 |
ConfigEntityBase:: |
protected | property | Third party entity settings. | |
ConfigEntityBase:: |
protected | property | Trust supplied data and not use configuration schema on save. | |
ConfigEntityBase:: |
protected | property | The UUID for this entity. | |
ConfigEntityBase:: |
protected | property | Information maintained by Drupal core about configuration. | |
ConfigEntityBase:: |
protected | function | Overrides \Drupal\Core\Entity\DependencyTrait:addDependency(). | |
ConfigEntityBase:: |
public | function |
Calculates dependencies and stores them in the dependency property. Overrides ConfigEntityInterface:: |
13 |
ConfigEntityBase:: |
public | function |
Creates a duplicate of the entity. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Disables the configuration entity. Overrides ConfigEntityInterface:: |
1 |
ConfigEntityBase:: |
public | function |
Enables the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the cache tags that should be used to invalidate caches. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Gets the configuration dependency name. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected static | function | Gets the configuration manager. | |
ConfigEntityBase:: |
public | function |
Gets the configuration target identifier for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the configuration dependencies. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the list of third parties that store information. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets all third-party settings of a given module. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
protected | function | Gets the typed config manager. | |
ConfigEntityBase:: |
public | function |
Gets whether on not the data is trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
protected static | function |
Override to never invalidate the individual entities' cache tags; the
config system already invalidates them. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected | function |
Override to never invalidate the entity's cache tag; the config system
already invalidates it. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Checks whether this entity is installable. Overrides ConfigEntityInterface:: |
2 |
ConfigEntityBase:: |
public | function |
Overrides Entity::isNew(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Returns whether this entity is being changed during the uninstall process. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Deprecated way of generating a link to the entity. See toLink(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Informs the entity that entities it depends on will be deleted. Overrides ConfigEntityInterface:: |
7 |
ConfigEntityBase:: |
public static | function |
Acts on entities before they are deleted and before hooks are invoked. Overrides EntityBase:: |
8 |
ConfigEntityBase:: |
public | function |
Acts on an entity before the presave hook is invoked. Overrides EntityBase:: |
13 |
ConfigEntityBase:: |
public | function |
Saves an entity permanently. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Sets the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets the status of the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function | ||
ConfigEntityBase:: |
public static | function | Helper callback for uasort() to sort configuration entities by weight and label. | 6 |
ConfigEntityBase:: |
public | function |
Returns whether the configuration entity is enabled. Overrides ConfigEntityInterface:: |
4 |
ConfigEntityBase:: |
public | function |
Gets an array of all property values. Overrides EntityBase:: |
2 |
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets that the data should be trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Unsets a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the public URL for this entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Constructs an Entity object. Overrides EntityBase:: |
10 |
ConfigEntityBase:: |
public | function |
Overrides EntityBase:: |
4 |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | Aliased as: traitSleep | 1 |
DependencySerializationTrait:: |
public | function | 2 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. Aliased as: addDependencyTrait | |
EntityBase:: |
protected | property | Boolean indicating whether the entity should be forced to be new. | |
EntityBase:: |
protected | property | The entity type. | |
EntityBase:: |
protected | property | A typed data object wrapping this entity. | |
EntityBase:: |
public | function |
Checks data value access. Overrides AccessibleInterface:: |
1 |
EntityBase:: |
public | function |
Gets the bundle of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public static | function |
Constructs a new entity object, without permanently saving it. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Deletes an entity permanently. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Enforces an entity to be new. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets the entity manager. | |
EntityBase:: |
protected | function | Gets the entity type bundle info service. | |
EntityBase:: |
protected | function | Gets the entity type manager. | |
EntityBase:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
Gets the key that is used to store configuration dependencies. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the entity type definition. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the ID of the type of the entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | The list cache tags to invalidate for this entity. | |
EntityBase:: |
public | function |
Gets a typed data object for this entity object. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Indicates if a link template exists for a given key. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the label of the entity. Overrides EntityInterface:: |
6 |
EntityBase:: |
public | function |
Gets the language of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the language manager. | |
EntityBase:: |
protected | function | Gets an array link templates. | 1 |
EntityBase:: |
public static | function |
Loads an entity. Overrides EntityInterface:: |
|
EntityBase:: |
public static | function |
Loads one or more entities. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Acts on a created entity before hooks are invoked. Overrides EntityInterface:: |
4 |
EntityBase:: |
public static | function |
Acts on deleted entities before the delete hook is invoked. Overrides EntityInterface:: |
16 |
EntityBase:: |
public static | function |
Acts on loaded entities. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Acts on a saved entity before the insert or update hook is invoked. Overrides EntityInterface:: |
14 |
EntityBase:: |
public static | function |
Changes the values of an entity before it is created. Overrides EntityInterface:: |
5 |
EntityBase:: |
public | function |
Gets a list of entities referenced by this entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Generates the HTML for a link to this entity. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets a list of URI relationships supported by this entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets an array of placeholders for this entity. | 2 |
EntityBase:: |
public | function |
Gets the entity UUID (Universally Unique Identifier). Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the UUID generator. | |
FeaturesBundle:: |
protected | property | The variable. | |
FeaturesBundle:: |
protected | property | The variable. | |
FeaturesBundle:: |
protected | property | The variable. | |
FeaturesBundle:: |
protected | property | The variable. | |
FeaturesBundle:: |
protected | property | The variable. | |
FeaturesBundle:: |
protected | property | The variable. | |
FeaturesBundle:: |
public | function |
Gets settings specific to an assignment method. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Gets the weights of the assignment methods. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
protected | function | Return array of default settings for the given plugin method. | |
FeaturesBundle:: |
public | function |
Gets the description of a bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Gets the list of enabled assignment methods. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Returns a full machine name prefixed with the bundle name. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Returns the machine name of a bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Gets the human readable name of a bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Returns the machine name of the profile. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Returns a short machine name not prefixed with the bundle name. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Gets the identifier. Overrides EntityBase:: |
|
FeaturesBundle:: |
public | function |
Determines if the $machine_name is prefixed by the bundle machine name. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Determines whether the current bundle is the default one. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Gets option for using a profile with this bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Determines if the package with $machine_name is the bundle profile. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Removes the bundle from the active config. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets settings specific to an assignment method. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets the weights of the assignment methods. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets the description of a bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets the list of enabled assignment methods. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets option for using a profile with this bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets the machine name of a bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets the human readable name of a bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundle:: |
public | function |
Sets the name of the profile associated with this bundle. Overrides FeaturesBundleInterface:: |
|
FeaturesBundleInterface:: |
constant | |||
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | 1 |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. | 1 |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. | 1 |
RefinableCacheableDependencyTrait:: |
public | function | 1 | |
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
protected | property | Whether this entity is being created, updated or deleted through a synchronization process. | |
SynchronizableEntityTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
public | function |