Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Publisher.php
Go to the documentation of this file.
1 <?php
8 
12 
19 class Publisher
20 {
24  protected $filesystem;
25 
29  private $materializationStrategyFactory;
30 
34  private $writeFactory;
35 
41  public function __construct(
42  \Magento\Framework\Filesystem $filesystem,
43  MaterializationStrategy\Factory $materializationStrategyFactory,
44  WriteFactory $writeFactory
45  ) {
46  $this->filesystem = $filesystem;
47  $this->materializationStrategyFactory = $materializationStrategyFactory;
48  $this->writeFactory = $writeFactory;
49  }
50 
55  public function publish(Asset\LocalInterface $asset)
56  {
57  $dir = $this->filesystem->getDirectoryRead(DirectoryList::STATIC_VIEW);
58  if ($dir->isExist($asset->getPath())) {
59  return true;
60  }
61 
62  return $this->publishAsset($asset);
63  }
64 
71  private function publishAsset(Asset\LocalInterface $asset)
72  {
73  $targetDir = $this->filesystem->getDirectoryWrite(DirectoryList::STATIC_VIEW);
74  $fullSource = $asset->getSourceFile();
75  $source = basename($fullSource);
76  $sourceDir = $this->writeFactory->create(dirname($fullSource));
77  $destination = $asset->getPath();
78  $strategy = $this->materializationStrategyFactory->create($asset);
79  return $strategy->publishFile($sourceDir, $targetDir, $source, $destination);
80  }
81 }
$source
Definition: source.php:23
publish(Asset\LocalInterface $asset)
Definition: Publisher.php:55
__construct(\Magento\Framework\Filesystem $filesystem, MaterializationStrategy\Factory $materializationStrategyFactory, WriteFactory $writeFactory)
Definition: Publisher.php:41