1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Signifyd\Model\MessageGenerators;
- /**
- * Common implementation of message generator.
- * Takes a message template (placeholders for localization also can be used) and list
- * of required params, which should persist in input data.
- *
- * If template contains placeholders, when required params should be specified in the same order as
- * placeholders, for example:
- * Message is 'Case Update: New score for the order is %1. Previous score was %2.', then the required params order
- * should be ['new_score', 'prev_score'].
- */
- class PatternGenerator implements GeneratorInterface
- {
- /**
- * @var string
- */
- private $template;
- /**
- * @var array
- */
- private $requiredParams;
- /**
- * PatternGenerator constructor.
- *
- * @param string $template
- * @param array $requiredParams
- */
- public function __construct($template, array $requiredParams = [])
- {
- $this->template = $template;
- $this->requiredParams = $requiredParams;
- }
- /**
- * @inheritdoc
- */
- public function generate(array $data)
- {
- $placeholders = [];
- foreach ($this->requiredParams as $param) {
- if (empty($data[$param])) {
- throw new GeneratorException(__('The "%1" should not be empty.', $param));
- }
- $placeholders[] = $data[$param];
- }
- return __($this->template, ...$placeholders);
- }
- }
|