![]() 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/module-theme/Model/Favicon/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Theme\Model\Favicon; use Magento\Framework\App\Filesystem\DirectoryList; /** * Favicon implementation */ class Favicon implements \Magento\Framework\View\Page\FaviconInterface { /** * @var string */ protected $faviconFile; /** * @var \Magento\Store\Model\StoreManagerInterface */ protected $storeManager; /** * @var \Magento\Framework\App\Config\ScopeConfigInterface */ protected $scopeConfig; /** * @var \Magento\MediaStorage\Helper\File\Storage\Database */ protected $fileStorageDatabase; /** * @var \Magento\Framework\Filesystem\Directory\ReadInterface */ protected $mediaDirectory; /** * @param \Magento\Store\Model\StoreManagerInterface $storeManager * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\MediaStorage\Helper\File\Storage\Database $fileStorageDatabase * @param \Magento\Framework\Filesystem $filesystem */ public function __construct( \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\MediaStorage\Helper\File\Storage\Database $fileStorageDatabase, \Magento\Framework\Filesystem $filesystem ) { $this->storeManager = $storeManager; $this->scopeConfig = $scopeConfig; $this->fileStorageDatabase = $fileStorageDatabase; $this->mediaDirectory = $filesystem->getDirectoryRead(DirectoryList::MEDIA); } /** * @return string */ public function getFaviconFile() { if (null === $this->faviconFile) { $this->faviconFile = $this->prepareFaviconFile(); } return $this->faviconFile; } /** * @return string */ public function getDefaultFavicon() { return 'Magento_Theme::favicon.ico'; } /** * @return string */ protected function prepareFaviconFile() { $folderName = \Magento\Config\Model\Config\Backend\Image\Favicon::UPLOAD_DIR; $scopeConfig = $this->scopeConfig->getValue( 'design/head/shortcut_icon', \Magento\Store\Model\ScopeInterface::SCOPE_STORE ); $path = $folderName . '/' . $scopeConfig; $faviconUrl = $this->storeManager->getStore() ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . $path; if ($scopeConfig !== null && $this->checkIsFile($path)) { return $faviconUrl; } return false; } /** * If DB file storage is on - find there, otherwise - just file_exists * * @param string $filename relative file path * @return bool */ protected function checkIsFile($filename) { if ($this->fileStorageDatabase->checkDbUsage() && !$this->mediaDirectory->isFile($filename)) { $this->fileStorageDatabase->saveFileToFilesystem($filename); } return $this->mediaDirectory->isFile($filename); } }