class ActionMethod

Same name in other branches
  1. 10 core/lib/Drupal/Core/Config/Action/Attribute/ActionMethod.php \Drupal\Core\Config\Action\Attribute\ActionMethod

@internal This API is experimental.

Hierarchy

Expanded class hierarchy of ActionMethod

17 files declare their use of ActionMethod
ActionMethodAttributeTest.php in core/tests/Drupal/Tests/Core/Config/Action/ActionMethodAttributeTest.php
Block.php in core/modules/block/src/Entity/Block.php
ConfigEntityBase.php in core/lib/Drupal/Core/Config/Entity/ConfigEntityBase.php
ConfigTest.php in core/modules/config/tests/config_test/src/Entity/ConfigTest.php
ConfigurableLanguage.php in core/modules/language/src/Entity/ConfigurableLanguage.php

... See full list

File

core/lib/Drupal/Core/Config/Action/Attribute/ActionMethod.php, line 17

Namespace

Drupal\Core\Config\Action\Attribute
View source
final class ActionMethod {
    
    /**
     * @param \Drupal\Core\Config\Action\Exists $exists
     *   Determines behavior of action depending on entity existence.
     * @param \Drupal\Core\StringTranslation\TranslatableMarkup|string $adminLabel
     *   The admin label for the user interface.
     * @param bool|string $pluralize
     *   Determines whether to create a pluralized version of the method to enable
     *   the action to be called multiple times before saving the entity. The
     *   default behavior is to create an action with a plural form as determined
     *   by \Symfony\Component\String\Inflector\EnglishInflector::pluralize().
     *   For example, 'grantPermission' has a pluralized version of
     *   'grantPermissions'. If a string is provided this will be the full action
     *   ID. For example, if the method is called 'addArray' this can be set to
     *   'addMultipleArrays'. Set to FALSE if a pluralized version does not make
     *   logical sense.
     * @param string|null $name
     *   The name of the action, if it should differ from the method name. Will be
     *   pluralized if $pluralize is TRUE. Must follow the rules for a valid PHP
     *   function name (e.g., no spaces, no Unicode characters, etc.). If used,
     *   the actual name of the method will NOT be available as an action name.
     *
     * @see https://www.php.net/manual/en/functions.user-defined.php
     */
    public function __construct(Exists $exists = Exists::ErrorIfNotExists, TranslatableMarkup|string $adminLabel = '', bool|string $pluralize = TRUE, ?string $name = NULL) {
        if ($name && !preg_match(ExtensionDiscovery::PHP_FUNCTION_PATTERN, $name)) {
            throw new InvalidPluginDefinitionException('entity_method', sprintf("'%s' is not a valid PHP function name.", $name));
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary
ActionMethod::__construct public function

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