Element.php

Same filename in this branch
  1. 11.x core/modules/editor/src/Element.php
  2. 11.x core/lib/Drupal/Core/Render/Element.php
Same filename and directory in other branches
  1. 9 core/modules/editor/src/Element.php
  2. 9 core/lib/Drupal/Core/Render/Element.php
  3. 9 core/lib/Drupal/Core/Config/Schema/Element.php
  4. 8.9.x core/modules/editor/src/Element.php
  5. 8.9.x core/lib/Drupal/Core/Render/Element.php
  6. 8.9.x core/lib/Drupal/Core/Config/Schema/Element.php
  7. 10 core/modules/editor/src/Element.php
  8. 10 core/lib/Drupal/Core/Render/Element.php
  9. 10 core/lib/Drupal/Core/Config/Schema/Element.php

Namespace

Drupal\Core\Config\Schema

File

core/lib/Drupal/Core/Config/Schema/Element.php

View source
<?php

namespace Drupal\Core\Config\Schema;

use Drupal\Core\Config\TypedConfigManagerInterface;
use Drupal\Core\TypedData\TypedData;
use Drupal\Core\TypedData\TypedDataManagerInterface;

/**
 * Defines a generic configuration element.
 */
abstract class Element extends TypedData {
    
    /**
     * The configuration value.
     *
     * @var mixed
     */
    protected $value;
    
    /**
     * Gets the typed configuration manager.
     *
     * Overrides \Drupal\Core\TypedData\TypedDataTrait::getTypedDataManager() to
     * ensure the typed configuration manager is returned.
     *
     * @return \Drupal\Core\Config\TypedConfigManagerInterface
     *   The typed configuration manager.
     */
    public function getTypedDataManager() {
        if (empty($this->typedDataManager)) {
            $this->setTypedDataManager(\Drupal::service('config.typed'));
        }
        return $this->typedDataManager;
    }
    
    /**
     * Sets the typed config manager.
     *
     * Overrides \Drupal\Core\TypedData\TypedDataTrait::setTypedDataManager() to
     * ensure that only typed configuration manager can be used.
     *
     * @param \Drupal\Core\TypedData\TypedDataManagerInterface $typed_data_manager
     *   The typed config manager. This must be an instance of
     *   \Drupal\Core\Config\TypedConfigManagerInterface. If it is not, then this
     *   method will error when assertions are enabled. We can not narrow the
     *   type hint as this will cause PHP errors.
     *
     * @return $this
     */
    public function setTypedDataManager(TypedDataManagerInterface $typed_data_manager) {
        assert($typed_data_manager instanceof TypedConfigManagerInterface, '$typed_data_manager should be an instance of \\Drupal\\Core\\Config\\TypedConfigManagerInterface.');
        $this->typedDataManager = $typed_data_manager;
        return $this;
    }

}

Classes

Title Deprecated Summary
Element Defines a generic configuration element.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.