![]() 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-media-storage/Helper/File/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\MediaStorage\Helper\File; /** * File storage helper * * @api * @since 100.0.2 */ class Storage extends \Magento\Framework\App\Helper\AbstractHelper { /** * Current storage code * * @var int */ protected $_currentStorage = null; /** * List of internal storages * * @var int[] */ protected $_internalStorageList = [\Magento\MediaStorage\Model\File\Storage::STORAGE_MEDIA_FILE_SYSTEM]; /** * Core file storage database * * @var \Magento\MediaStorage\Helper\File\Storage\Database */ protected $_coreFileStorageDb = null; /** * @var \Magento\MediaStorage\Model\File\Storage */ protected $_storage; /** * File system storage model * * @var \Magento\MediaStorage\Model\File\Storage\File */ protected $_filesystemStorage; /** * @param \Magento\Framework\App\Helper\Context $context * @param \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDb * @param \Magento\MediaStorage\Model\File\Storage $storage * @param \Magento\MediaStorage\Model\File\Storage\File $filesystemStorage */ public function __construct( \Magento\Framework\App\Helper\Context $context, \Magento\MediaStorage\Helper\File\Storage\Database $coreFileStorageDb, \Magento\MediaStorage\Model\File\Storage $storage, \Magento\MediaStorage\Model\File\Storage\File $filesystemStorage ) { $this->_filesystemStorage = $filesystemStorage; $this->_coreFileStorageDb = $coreFileStorageDb; $this->_storage = $storage; parent::__construct($context); } /** * Return saved storage code * * @return int */ public function getCurrentStorageCode() { if ($this->_currentStorage === null) { $this->_currentStorage = (int)$this->scopeConfig->getValue( \Magento\MediaStorage\Model\File\Storage::XML_PATH_STORAGE_MEDIA, 'default' ); } return $this->_currentStorage; } /** * Retrieve file system storage model * * @return \Magento\MediaStorage\Model\File\Storage\File */ public function getStorageFileModel() { return $this->_filesystemStorage; } /** * Check if storage is internal * * @param int|null $storage * @return bool */ public function isInternalStorage($storage = null) { $storage = $storage !== null ? (int)$storage : $this->getCurrentStorageCode(); return in_array($storage, $this->_internalStorageList); } /** * Retrieve storage model * * @param int|null $storage * @param array $params * @return \Magento\Framework\Model\AbstractModel|bool */ public function getStorageModel($storage = null, $params = []) { return $this->_storage->getStorageModel($storage, $params); } /** * Check if needed to copy file from storage to file system and * if file exists in the storage * * @param string $filename * @return bool|int */ public function processStorageFile($filename) { if ($this->isInternalStorage()) { return false; } $dbHelper = $this->_coreFileStorageDb; $relativePath = $dbHelper->getMediaRelativePath($filename); $file = $this->getStorageModel()->loadByFilename($relativePath); if (!$file->getId()) { return false; } return $this->saveFileToFileSystem($file); } /** * Save file to file system * * @param \Magento\MediaStorage\Model\File\Storage\Database $file * @return bool|int */ public function saveFileToFileSystem($file) { return $this->getStorageFileModel()->saveFile($file, true); } }