vendor/symfony/webpack-encore-bundle/src/Dto/StimulusActionsDto.php line 25

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4.  * This file is part of the Symfony WebpackEncoreBundle package.
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  * For the full copyright and license information, please view the LICENSE
  7.  * file that was distributed with this source code.
  8.  */
  9. namespace Symfony\WebpackEncoreBundle\Dto;
  10. /**
  11.  * @deprecated since 1.17.0 - install symfony/stimulus-bundle instead.
  12.  */
  13. final class StimulusActionsDto extends AbstractStimulusDto
  14. {
  15.     private $actions = [];
  16.     private $parameters = [];
  17.     /**
  18.      * @param array $parameters Parameters to pass to the action. Optional.
  19.      */
  20.     public function addAction(string $controllerNamestring $actionNamestring $eventName null, array $parameters = []): void
  21.     {
  22.         $controllerName $this->getFormattedControllerName($controllerName);
  23.         $action $controllerName.'#'.$this->escapeAsHtmlAttr($actionName);
  24.         if (null !== $eventName) {
  25.             $action $eventName.'->'.$action;
  26.         }
  27.         $this->actions[] = $action;
  28.         foreach ($parameters as $name => $value) {
  29.             $this->parameters['data-'.$controllerName.'-'.$name.'-param'] = $this->getFormattedValue($value);
  30.         }
  31.     }
  32.     public function __toString(): string
  33.     {
  34.         if (=== \count($this->actions)) {
  35.             return '';
  36.         }
  37.         return rtrim('data-action="'.implode(' '$this->actions).'" '.implode(' 'array_map(function (string $attributestring $value): string {
  38.             return $attribute.'="'.$this->escapeAsHtmlAttr($value).'"';
  39.         }, array_keys($this->parameters), $this->parameters)));
  40.     }
  41.     public function toArray(): array
  42.     {
  43.         return ['data-action' => implode(' '$this->actions)] + $this->parameters;
  44.     }
  45. }