![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/View/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\View; use Magento\Framework\App\Cache\StateInterface as CacheState; use Magento\Framework\App\CacheInterface as Cache; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\App\FrontControllerInterface; use Magento\Framework\App\Request\Http as Request; use Magento\Framework\App\State as AppState; use Magento\Framework\Event\ManagerInterface; use Psr\Log\LoggerInterface as Logger; use Magento\Framework\Session\SessionManager; use Magento\Framework\Session\SessionManagerInterface; use Magento\Framework\TranslateInterface; use Magento\Framework\UrlInterface; use Magento\Framework\View\ConfigInterface as ViewConfig; /** * Application Runtime Context * * @todo Reduce fields number * @todo Reduce class dependencies * * @SuppressWarnings(PHPMD.TooManyFields) * @SuppressWarnings(PHPMD.CouplingBetweenObjects) * @SuppressWarnings(PHPMD.CookieAndSessionMisuse) * @api * @since 100.0.2 */ class Context { /** * Request * * @var Request */ protected $request; /** * Event manager * * @var ManagerInterface */ protected $eventManager; /** * URL builder * @var \Magento\Framework\UrlInterface */ protected $urlBuilder; /** * Translator * * @var \Magento\Framework\TranslateInterface */ protected $translator; /** * Cache * * @var \Magento\Framework\App\CacheInterface */ protected $cache; /** * Design * * @var \Magento\Framework\View\DesignInterface */ protected $design; /** * Session * * @var \Magento\Framework\Session\SessionManagerInterface */ protected $session; /** * Store config * * @var \Magento\Framework\App\Config\ScopeConfigInterface */ protected $scopeConfig; /** * Front controller * * @var FrontControllerInterface */ protected $frontController; /** * Layout * * @var \Magento\Framework\View\LayoutInterface */ protected $layout; /** * View config model * * @var \Magento\Framework\View\Config */ protected $viewConfig; /** * Cache state * * @var \Magento\Framework\App\Cache\StateInterface */ protected $cacheState; /** * Logger * * @var \Psr\Log\LoggerInterface */ protected $logger; /** * Application state * * @var \Magento\Framework\App\State */ protected $appState; /** * Constructor * * @param Request $request * @param ManagerInterface $eventManager * @param UrlInterface $urlBuilder * @param TranslateInterface $translator * @param Cache $cache * @param DesignInterface $design * @param SessionManager $session * @param ScopeConfigInterface $scopeConfig * @param FrontControllerInterface $frontController * @param ViewConfig $viewConfig * @param CacheState $cacheState * @param Logger $logger * @param AppState $appState * @param LayoutInterface $layout * @param SessionManagerInterface|null $sessionManager * * @todo reduce parameter number * * @SuppressWarnings(PHPMD.ExcessiveParameterList) */ public function __construct( Request $request, ManagerInterface $eventManager, UrlInterface $urlBuilder, TranslateInterface $translator, Cache $cache, DesignInterface $design, SessionManager $session, ScopeConfigInterface $scopeConfig, FrontControllerInterface $frontController, ViewConfig $viewConfig, CacheState $cacheState, Logger $logger, AppState $appState, LayoutInterface $layout, SessionManagerInterface $sessionManager = null ) { $this->request = $request; $this->eventManager = $eventManager; $this->urlBuilder = $urlBuilder; $this->translator = $translator; $this->cache = $cache; $this->design = $design; $this->session = $sessionManager ?: $session; $this->scopeConfig = $scopeConfig; $this->frontController = $frontController; $this->viewConfig = $viewConfig; $this->cacheState = $cacheState; $this->logger = $logger; $this->appState = $appState; $this->layout = $layout; } /** * Retrieve cache * * @return \Magento\Framework\App\CacheInterface */ public function getCache() { return $this->cache; } /** * Retrieve design package * * @return \Magento\Framework\View\DesignInterface */ public function getDesignPackage() { return $this->design; } /** * Retrieve event manager * * @return ManagerInterface */ public function getEventManager() { return $this->eventManager; } /** * Retrieve front controller * * @return FrontControllerInterface */ public function getFrontController() { return $this->frontController; } /** * Retrieve layout * * @return \Magento\Framework\View\LayoutInterface */ public function getLayout() { return $this->layout; } /** * Retrieve request * * @return Request */ public function getRequest() { return $this->request; } /** * Retrieve session * * @return \Magento\Framework\Session\SessionManagerInterface */ public function getSession() { return $this->session; } /** * Retrieve scope config * * @return \Magento\Framework\App\Config\ScopeConfigInterface */ public function getScopeConfig() { return $this->scopeConfig; } /** * Retrieve translator * * @return \Magento\Framework\TranslateInterface */ public function getTranslator() { return $this->translator; } /** * Retrieve URL builder * * @return \Magento\Framework\UrlInterface */ public function getUrlBuilder() { return $this->urlBuilder; } /** * Retrieve view config * * @return \Magento\Framework\View\ConfigInterface */ public function getViewConfig() { return $this->viewConfig; } /** * Retrieve cache state * * @return \Magento\Framework\App\Cache\StateInterface */ public function getCacheState() { return $this->cacheState; } /** * Retrieve logger * * @return \Psr\Log\LoggerInterface */ public function getLogger() { return $this->logger; } /** * Retrieve layout area * * @return string */ public function getArea() { return $this->appState->getAreaCode(); } /** * Retrieve the module name * * @return string */ public function getModuleName() { return $this->getRequest()->getModuleName(); } /** * Get Front Name * * @see getModuleName */ public function getFrontName() { return $this->getModuleName(); } /** * Retrieve the controller name * * @return string */ public function getControllerName() { return $this->getRequest()->getControllerName(); } /** * Retrieve the action name * * @return string */ public function getActionName() { return $this->getRequest()->getActionName(); } /** * Retrieve the full action name * * @return string */ public function getFullActionName() { return strtolower($this->getFrontName() . '_' . $this->getControllerName() . '_' . $this->getActionName()); } /** * Retrieve acceptance type * * @return string */ public function getAcceptType() { // TODO: do intelligence here $type = $this->getHeader('Accept') ?: 'html'; if (strpos($type, 'json') !== false) { return 'json'; } elseif (strpos($type, 'soap') !== false) { return 'soap'; } elseif (strpos($type, 'text/html') !== false) { return 'html'; } else { return 'xml'; } } /** * Retrieve a member of the $_POST superglobal * * @param string $key * @param mixed $default Default value to use if key not found * @return mixed|null if key does not exist */ public function getPost($key = null, $default = null) { return $this->getRequest()->getPost($key, $default); } /** * Retrieve a member of the $_POST superglobal * * @param string|null $key * @param mixed $default Default value to use if key not found * @return mixed alias of getPost */ public function getQuery($key = null, $default = null) { return $this->getRequest()->getPost($key, $default); } /** * Retrieve a parameter * * @param string|null $key * @param mixed $default Default value to use if key not found * @return mixed */ public function getParam($key = null, $default = null) { return $this->getRequest()->getParam($key, $default); } /** * Retrieve an array of parameters * * @return array */ public function getParams() { return $this->getRequest()->getParams(); } /** * Return the value of the given HTTP header. * * @param string $header * @return string|false HTTP header value, or false if not found */ public function getHeader($header) { return $this->getRequest()->getHeader($header); } /** * Return the raw body of the request, if present * * @return string|false Raw body, or false if not present */ public function getContent() { return $this->getRequest()->getContent(); } /** * Retrieve application state * * @return \Magento\Framework\App\State */ public function getAppState() { return $this->appState; } /** * Retrieve parent theme instance * * @param Design\ThemeInterface $theme * @return Design\ThemeInterface * @throws \Exception */ protected function getPhysicalTheme(Design\ThemeInterface $theme) { $result = $theme; while ($result->getId() && !$result->isPhysical()) { $result = $result->getParentTheme(); } if (!$result) { throw new \InvalidArgumentException( "Unable to find a physical ancestor for a theme '{$theme->getThemeTitle()}'." ); } return $result; } }