PhraseFactory.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Message;
  7. use Magento\Framework\Phrase;
  8. /**
  9. * Factory to combine several messages into one
  10. * @deprecated 101.0.0
  11. */
  12. class PhraseFactory
  13. {
  14. /**
  15. * Combine submessages delimited by separator and render them with main message
  16. *
  17. * @param string $mainMessage
  18. * @param MessageInterface[] $subMessages
  19. * @param string $separator
  20. * @return Phrase
  21. */
  22. public function create($mainMessage, $subMessages, $separator = '; ')
  23. {
  24. $renderedErrors = '';
  25. $eol = '';
  26. /** @var MessageInterface $subMessage */
  27. foreach ($subMessages as $subMessage) {
  28. if ($subMessage instanceof MessageInterface) {
  29. $phrase = new Phrase($subMessage->getText());
  30. } else {
  31. $phrase = new Phrase('Cannot render error message!');
  32. }
  33. $renderedErrors .= $eol . $phrase->render();
  34. $eol = $separator;
  35. }
  36. //$mainMessage should contain %1 to be substituted by concatenated errors
  37. return new Phrase($mainMessage, [$renderedErrors]);
  38. }
  39. }