123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Checkout\Block\Cart;
- /**
- * @api
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- * @since 100.0.2
- */
- class Shipping extends \Magento\Checkout\Block\Cart\AbstractCart
- {
- /**
- * @var \Magento\Checkout\Model\CompositeConfigProvider
- */
- protected $configProvider;
- /**
- * @var array|\Magento\Checkout\Block\Checkout\LayoutProcessorInterface[]
- */
- protected $layoutProcessors;
- /**
- * @var \Magento\Framework\Serialize\Serializer\Json
- */
- private $serializer;
- /**
- * @param \Magento\Framework\View\Element\Template\Context $context
- * @param \Magento\Customer\Model\Session $customerSession
- * @param \Magento\Checkout\Model\Session $checkoutSession
- * @param \Magento\Checkout\Model\CompositeConfigProvider $configProvider
- * @param array $layoutProcessors
- * @param array $data
- * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
- * @throws \RuntimeException
- */
- public function __construct(
- \Magento\Framework\View\Element\Template\Context $context,
- \Magento\Customer\Model\Session $customerSession,
- \Magento\Checkout\Model\Session $checkoutSession,
- \Magento\Checkout\Model\CompositeConfigProvider $configProvider,
- array $layoutProcessors = [],
- array $data = [],
- \Magento\Framework\Serialize\Serializer\Json $serializer = null
- ) {
- $this->configProvider = $configProvider;
- $this->layoutProcessors = $layoutProcessors;
- parent::__construct($context, $customerSession, $checkoutSession, $data);
- $this->_isScopePrivate = true;
- $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()
- ->get(\Magento\Framework\Serialize\Serializer\Json::class);
- }
- /**
- * Retrieve checkout configuration
- *
- * @return array
- * @codeCoverageIgnore
- */
- public function getCheckoutConfig()
- {
- return $this->configProvider->getConfig();
- }
- /**
- * Retrieve serialized JS layout configuration ready to use in template
- *
- * @return string
- */
- public function getJsLayout()
- {
- foreach ($this->layoutProcessors as $processor) {
- $this->jsLayout = $processor->process($this->jsLayout);
- }
- return json_encode($this->jsLayout, JSON_HEX_TAG);
- }
- /**
- * Get base url for block.
- *
- * @return string
- * @codeCoverageIgnore
- */
- public function getBaseUrl()
- {
- return $this->_storeManager->getStore()->getBaseUrl();
- }
- /**
- * @return bool|string
- * @since 100.2.0
- */
- public function getSerializedCheckoutConfig()
- {
- return json_encode($this->getCheckoutConfig(), JSON_HEX_TAG);
- }
- }
|