VariableNotation.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\View\Asset\PreProcessor;
  7. use Magento\Framework\View\Asset;
  8. use Magento\Framework\View\Asset\NotationResolver;
  9. use Magento\Framework\View\Url\CssResolver;
  10. /**
  11. * Support of notation "{{variable}}" in CSS-files
  12. *
  13. * Used to replace placeholder variables (such as {{base_url_path}}) with dynamic values.
  14. */
  15. class VariableNotation implements Asset\PreProcessorInterface
  16. {
  17. /**
  18. * @var \Magento\Framework\View\Url\CssResolver
  19. */
  20. private $cssResolver;
  21. /**
  22. * @var NotationResolver\Variable
  23. */
  24. private $notationResolver;
  25. /**
  26. * Constructor
  27. *
  28. * @param CssResolver $cssResolver
  29. * @param NotationResolver\Variable $notationResolver
  30. */
  31. public function __construct(
  32. CssResolver $cssResolver,
  33. NotationResolver\Variable $notationResolver
  34. ) {
  35. $this->cssResolver = $cssResolver;
  36. $this->notationResolver = $notationResolver;
  37. }
  38. /**
  39. * @inheritdoc
  40. */
  41. public function process(Chain $chain)
  42. {
  43. $callback = function ($path) {
  44. return $this->notationResolver->convertVariableNotation($path);
  45. };
  46. $chain->setContent($this->cssResolver->replaceRelativeUrls($chain->getContent(), $callback));
  47. }
  48. }