123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Helper\Session;
- use Magento\Customer\Api\CustomerRepositoryInterface;
- use Magento\Customer\Api\Data\CustomerInterfaceFactory;
- use Magento\Customer\Model\Session as CustomerSession;
- use Magento\Framework\App\RequestInterface;
- use Magento\Framework\App\ViewInterface;
- use Magento\Framework\Module\Manager as ModuleManager;
- use Magento\Framework\View\LayoutInterface;
- /**
- * Class CurrentCustomer
- */
- class CurrentCustomer
- {
- /**
- * @var \Magento\Customer\Model\Session
- */
- protected $customerSession;
- /**
- * @var \Magento\Framework\View\LayoutInterface
- */
- protected $layout;
- /**
- * @var \Magento\Customer\Api\Data\CustomerInterfaceFactory
- */
- protected $customerFactory;
- /**
- * @var CustomerRepositoryInterface
- */
- protected $customerRepository;
- /**
- * @var \Magento\Framework\App\RequestInterface
- */
- protected $request;
- /**
- * @var \Magento\Framework\Module\Manager
- */
- protected $moduleManager;
- /**
- * @var \Magento\Framework\App\ViewInterface
- */
- protected $view;
- /**
- * @param CustomerSession $customerSession
- * @param LayoutInterface $layout
- * @param CustomerInterfaceFactory $customerFactory
- * @param CustomerRepositoryInterface $customerRepository
- * @param RequestInterface $request
- * @param ModuleManager $moduleManager
- * @param ViewInterface $view
- */
- public function __construct(
- CustomerSession $customerSession,
- LayoutInterface $layout,
- CustomerInterfaceFactory $customerFactory,
- CustomerRepositoryInterface $customerRepository,
- RequestInterface $request,
- ModuleManager $moduleManager,
- ViewInterface $view
- ) {
- $this->customerSession = $customerSession;
- $this->layout = $layout;
- $this->customerFactory = $customerFactory;
- $this->customerRepository = $customerRepository;
- $this->request = $request;
- $this->moduleManager = $moduleManager;
- $this->view = $view;
- }
- /**
- * Returns customer Data with customer group only
- *
- * @return \Magento\Customer\Api\Data\CustomerInterface
- */
- protected function getDepersonalizedCustomer()
- {
- $customer = $this->customerFactory->create();
- $customer->setGroupId($this->customerSession->getCustomerGroupId());
- return $customer;
- }
- /**
- * Returns customer Data from service
- *
- * @return \Magento\Customer\Api\Data\CustomerInterface
- */
- protected function getCustomerFromService()
- {
- return $this->customerRepository->getById($this->customerSession->getId());
- }
- /**
- * Returns current customer according to session and context
- *
- * @return \Magento\Customer\Api\Data\CustomerInterface
- */
- public function getCustomer()
- {
- if ($this->moduleManager->isEnabled('Magento_PageCache')
- && !$this->request->isAjax()
- && $this->view->isLayoutLoaded()
- && $this->layout->isCacheable()
- ) {
- return $this->getDepersonalizedCustomer();
- } else {
- return $this->getCustomerFromService();
- }
- }
- /**
- * Returns customer id from session
- *
- * @return int|null
- */
- public function getCustomerId()
- {
- return $this->customerSession->getId();
- }
- /**
- * Set customer id
- *
- * @param int|null $customerId
- * @return void
- */
- public function setCustomerId($customerId)
- {
- $this->customerSession->setId($customerId);
- }
- }
|