12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\MediaStorage\Model\File\Storage;
- use Magento\Framework\Exception\FileSystemException;
- use Magento\Framework\Filesystem\Directory\WriteInterface as DirectoryWrite;
- use Magento\Framework\Filesystem\File\WriteInterface;
- use Magento\MediaStorage\Service\ImageResize;
- use Magento\MediaStorage\Model\File\Storage\Database;
- /**
- * Class Synchronization
- */
- class Synchronization
- {
- /**
- * Database storage factory
- *
- * @var DatabaseFactory
- */
- protected $storageFactory;
- /**
- * File stream handler
- *
- * @var DirectoryWrite
- */
- protected $mediaDirectory;
- /**
- * @param DatabaseFactory $storageFactory
- * @param DirectoryWrite $directory
- */
- public function __construct(
- DatabaseFactory $storageFactory,
- DirectoryWrite $directory
- ) {
- $this->storageFactory = $storageFactory;
- $this->mediaDirectory = $directory;
- }
- /**
- * Synchronize file
- *
- * @param string $relativeFileName
- * @return void
- * @throws \LogicException
- */
- public function synchronize($relativeFileName)
- {
- /** @var $storage Database */
- $storage = $this->storageFactory->create();
- try {
- $storage->loadByFilename($relativeFileName);
- } catch (\Exception $e) {
- }
- if ($storage->getId()) {
- /** @var WriteInterface $file */
- $file = $this->mediaDirectory->openFile($relativeFileName, 'w');
- try {
- $file->lock();
- $file->write($storage->getContent());
- $file->unlock();
- $file->close();
- } catch (FileSystemException $e) {
- $file->close();
- }
- }
- }
- }
|