class ContactMessageResource extends EntityResource (View source)

Customizes the entity REST Resource plugin for Contact's Message entities.

Message entities are not stored, so they cannot be:

  • retrieved (GET)
  • modified (PATCH)
  • deleted (DELETE) Messages can only be sent/created (POST).

Traits

Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.

Provides dependency injection friendly methods for serialization.

Provides a trait for the messenger service.

Constants

DERIVATIVE_SEPARATOR

A string which is used to separate base plugin IDs from the derivative ID.

Properties

protected string $pluginId

The plugin_id.

from  PluginBase
protected array $pluginDefinition

The plugin implementation definition.

from  PluginBase
protected array $configuration

Configuration information passed into the plugin.

from  PluginBase
protected TranslationInterface $stringTranslation

The string translation service.

from  StringTranslationTrait
protected array $_serviceIds

An array of service IDs keyed by property name used for serialization.

from  DependencySerializationTrait
protected array $_entityStorages

An array of entity type IDs keyed by the property name of their storages.

from  DependencySerializationTrait
protected MessengerInterface $messenger

The messenger.

from  MessengerTrait
protected array $serializerFormats

The available serialization formats.

from  ResourceBase
protected LoggerInterface $logger

A logger instance.

from  ResourceBase
protected EntityTypeInterface $entityType

The entity type targeted by this resource.

from  EntityResource
protected ConfigFactoryInterface $configFactory

The config factory.

from  EntityResource
protected PluginManagerInterface $linkRelationTypeManager

The link relation type manager used to create HTTP header links.

from  EntityResource

Methods

__construct(array $configuration, string $plugin_id, mixed $plugin_definition, EntityTypeManagerInterface $entity_type_manager, array $serializer_formats, LoggerInterface $logger, ConfigFactoryInterface $config_factory, PluginManagerInterface $link_relation_type_manager)

Constructs a Drupal\rest\Plugin\rest\resource\EntityResource object.

string
getPluginId()

Gets the plugin_id of the plugin instance.

string
getBaseId()

Gets the base_plugin_id of the plugin instance.

string|null
getDerivativeId()

Gets the derivative_id of the plugin instance.

array
getPluginDefinition()

Gets the definition of the plugin implementation.

bool
isConfigurable()

Determines if the plugin is configurable.

t(string $string, array $args = [], array $options = [])

Translates a string to the current language or to a given language.

formatPlural($count, $singular, $plural, array $args = [], array $options = [])

Formats a string containing a count of items.

getNumberOfPlurals($langcode = NULL)

Returns the number of plurals supported by a given language.

getStringTranslation()

Gets the string translation service.

$this
setStringTranslation(TranslationInterface $translation)

Sets the string translation service to use.

__sleep()

{@inheritdoc}

__wakeup()

{@inheritdoc}

setMessenger(MessengerInterface $messenger)

Sets the messenger.

messenger()

Gets the messenger.

create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition)

Creates an instance of the plugin.

array
permissions()

Implements ResourceInterface::permissions().

RouteCollection
routes()

Returns a collection of routes with URL path information for the resource.

array
requestMethods()

Provides predefined HTTP request methods.

array
availableMethods()

Returns the available HTTP request methods on this plugin.

Route
getBaseRoute(string $canonical_path, string $method)

Gets the base route for a particular method.

array
getBaseRouteRequirements($method)

Gets the base route requirements for a particular method.

validate(EntityInterface $entity, array $fields_to_validate = [])

Verifies that an entity does not violate any validation constraints.

checkEditFieldAccess(EntityInterface $entity)

Performs edit access checks for fields.

get(EntityInterface $entity, Request $request)

Responds to entity GET requests.

post(EntityInterface $entity = NULL)

Responds to entity POST requests and saves the new entity.

patch(EntityInterface $original_entity, EntityInterface $entity = NULL)

Responds to entity PATCH requests.

bool
checkPatchFieldAccess(FieldItemListInterface $original_field, FieldItemListInterface $received_field)

Checks whether the given field should be PATCHed.

delete(EntityInterface $entity)

Responds to entity DELETE requests.

string
generateFallbackAccessDeniedMessage(EntityInterface $entity, string $operation)

Generates a fallback access denied message, when no specific reason is set.

bool
isConfigEntityResource()

Checks if this resource is for a Config Entity.

array
calculateDependencies()

Calculates dependencies for the configured plugin.

addLinkHeaders(EntityInterface $entity, Response $response)

Adds link headers to a response.

Details

__construct(array $configuration, string $plugin_id, mixed $plugin_definition, EntityTypeManagerInterface $entity_type_manager, array $serializer_formats, LoggerInterface $logger, ConfigFactoryInterface $config_factory, PluginManagerInterface $link_relation_type_manager)

Constructs a Drupal\rest\Plugin\rest\resource\EntityResource object.

Parameters

array $configuration

A configuration array containing information about the plugin instance.

string $plugin_id

The plugin_id for the plugin instance.

mixed $plugin_definition

The plugin implementation definition.

EntityTypeManagerInterface $entity_type_manager

The entity type manager

array $serializer_formats

The available serialization formats.

LoggerInterface $logger

A logger instance.

ConfigFactoryInterface $config_factory

The config factory.

PluginManagerInterface $link_relation_type_manager

The link relation type manager.

string getPluginId()

Gets the plugin_id of the plugin instance.

Return Value

string

The plugin_id of the plugin instance.

string getBaseId()

Gets the base_plugin_id of the plugin instance.

Return Value

string

The base_plugin_id of the plugin instance.

string|null getDerivativeId()

Gets the derivative_id of the plugin instance.

Return Value

string|null

The derivative_id of the plugin instance NULL otherwise.

array getPluginDefinition()

Gets the definition of the plugin implementation.

Return Value

array

The plugin definition, as returned by the discovery object used by the plugin manager.

bool isConfigurable()

Determines if the plugin is configurable.

Return Value

bool

A boolean indicating whether the plugin is configurable.

protected TranslatableMarkup t(string $string, array $args = [], array $options = [])

Translates a string to the current language or to a given language.

See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.

In order for strings to be localized, make them available in one of the ways supported by the

Parameters

string $string

A string containing the English text to translate.

array $args

(optional) An associative array of replacements to make after translation. Based on the first character of the key, the value is escaped and/or themed. See \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for details.

array $options

(optional) An associative array of additional options, with the following elements:

  • 'langcode' (defaults to the current language): A language code, to translate to a language other than what is used to display the page.
  • 'context' (defaults to the empty context): The context the source string belongs to. See the @link i18n Internationalization topic @endlink for more information about string contexts.

Return Value

TranslatableMarkup

An object that, when cast to a string, returns the translated string.

See also

FormattableMarkup::placeholderFormat
TranslatableMarkup::__construct

protected formatPlural($count, $singular, $plural, array $args = [], array $options = [])

Formats a string containing a count of items.

Parameters

$count
$singular
$plural
array $args
array $options

See also

TranslationInterface::formatPlural

protected getNumberOfPlurals($langcode = NULL)

Returns the number of plurals supported by a given language.

Parameters

$langcode

See also

PluralFormulaInterface::getNumberOfPlurals

protected TranslationInterface getStringTranslation()

Gets the string translation service.

Return Value

TranslationInterface

The string translation service.

$this setStringTranslation(TranslationInterface $translation)

Sets the string translation service to use.

Parameters

TranslationInterface $translation

The string translation service.

Return Value

$this

__sleep()

{@inheritdoc}

__wakeup()

{@inheritdoc}

setMessenger(MessengerInterface $messenger)

Sets the messenger.

Parameters

MessengerInterface $messenger

The messenger.

MessengerInterface messenger()

Gets the messenger.

Return Value

MessengerInterface

The messenger.

static ContainerFactoryPluginInterface create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition)

Creates an instance of the plugin.

Parameters

ContainerInterface $container

The container to pull out services used in the plugin.

array $configuration

A configuration array containing information about the plugin instance.

string $plugin_id

The plugin ID for the plugin instance.

mixed $plugin_definition

The plugin implementation definition.

Return Value

ContainerFactoryPluginInterface

Returns an instance of this plugin.

array permissions()

Implements ResourceInterface::permissions().

Every plugin operation method gets its own user permission. Example: "restful delete entity:node" with the title "Access DELETE on Node resource".

Return Value

array

The permission array.

RouteCollection routes()

Returns a collection of routes with URL path information for the resource.

This method determines where a resource is reachable, what path replacements are used, the required HTTP method for the operation etc.

Return Value

RouteCollection

A collection of routes that should be registered for this resource.

protected array requestMethods()

Provides predefined HTTP request methods.

Plugins can override this method to provide additional custom request methods.

Return Value

array

The list of allowed HTTP request method strings.

array availableMethods()

Returns the available HTTP request methods on this plugin.

Return Value

array

The list of supported methods. Example: array('GET', 'POST', 'PATCH').

protected Route getBaseRoute(string $canonical_path, string $method)

Gets the base route for a particular method.

Parameters

string $canonical_path

The canonical path for the resource.

string $method

The HTTP method to be used for the route.

Return Value

Route

The created base route.

protected array getBaseRouteRequirements($method)

Gets the base route requirements for a particular method.

Parameters

$method

The HTTP method to be used for the route.

Return Value

array

An array of requirements for parameters.

protected validate(EntityInterface $entity, array $fields_to_validate = [])

Verifies that an entity does not violate any validation constraints.

The validation errors will be filtered to not include fields to which the current user does not have access and if $fields_to_validate is provided will only include fields in that array.

Parameters

EntityInterface $entity

The entity to validate.

array $fields_to_validate

(optional) An array of field names. If specified, filters the violations list to include only this set of fields.

Exceptions

UnprocessableEntityHttpException

protected checkEditFieldAccess(EntityInterface $entity)

Performs edit access checks for fields.

Parameters

EntityInterface $entity

The entity whose fields edit access should be checked for.

Exceptions

AccessDeniedHttpException

ResourceResponse get(EntityInterface $entity, Request $request)

Responds to entity GET requests.

Parameters

EntityInterface $entity

The entity object.

Request $request

The incoming request.

Return Value

ResourceResponse

The response containing the entity with its accessible fields.

Exceptions

HttpException

ModifiedResourceResponse post(EntityInterface $entity = NULL)

Responds to entity POST requests and saves the new entity.

Parameters

EntityInterface $entity

The entity.

Return Value

ModifiedResourceResponse

The HTTP response object.

Exceptions

HttpException

ModifiedResourceResponse patch(EntityInterface $original_entity, EntityInterface $entity = NULL)

Responds to entity PATCH requests.

Parameters

EntityInterface $original_entity

The original entity object.

EntityInterface $entity

The entity.

Return Value

ModifiedResourceResponse

The HTTP response object.

Exceptions

HttpException

protected bool checkPatchFieldAccess(FieldItemListInterface $original_field, FieldItemListInterface $received_field)

internal  
 

Checks whether the given field should be PATCHed.

Parameters

FieldItemListInterface $original_field

The original (stored) value for the field.

FieldItemListInterface $received_field

The received value for the field.

Return Value

bool

Whether the field should be PATCHed or not.

Exceptions

AccessDeniedHttpException

ModifiedResourceResponse delete(EntityInterface $entity)

Responds to entity DELETE requests.

Parameters

EntityInterface $entity

The entity object.

Return Value

ModifiedResourceResponse

The HTTP response object.

Exceptions

HttpException

protected string generateFallbackAccessDeniedMessage(EntityInterface $entity, string $operation)

Generates a fallback access denied message, when no specific reason is set.

Parameters

EntityInterface $entity

The entity object.

string $operation

The disallowed entity operation.

Return Value

string

The proper message to display in the AccessDeniedHttpException.

protected bool isConfigEntityResource()

Checks if this resource is for a Config Entity.

Return Value

bool

TRUE if the entity is a Config Entity, FALSE otherwise.

array calculateDependencies()

Calculates dependencies for the configured plugin.

Dependencies are saved in the plugin's configuration entity and are used to determine configuration synchronization order. For example, if the plugin integrates with specific user roles, this method should return an array of dependencies listing the specified roles.

Return Value

array

An array of dependencies grouped by type (config, content, module, theme). For example: @code array( 'config' => array('user.role.anonymous', 'user.role.authenticated'), 'content' => array('node:article:f0a189e6-55fb-47fb-8005-5bef81c44d6d'), 'module' => array('node', 'user'), 'theme' => array('seven'), ); @endcode

protected addLinkHeaders(EntityInterface $entity, Response $response)

Adds link headers to a response.

Parameters

EntityInterface $entity

The entity.

Response $response

The response.

See also

https://tools.ietf.org/html/rfc5988#section-5