for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php namespace Modules\Core\Foundation\Theme;
class AssetPublisher
{
/**
* @var \Illuminate\Filesystem\Filesystem
*/
protected $finder;
* @var ThemeManager
protected $repository;
* @var Theme
private $theme;
* @param Theme $theme
public function __construct(Theme $theme)
$this->theme = $theme;
}
* @param $finder
* @return $this
public function setFinder($finder)
$this->finder = $finder;
return $this;
* @param $repository
public function setRepository($repository)
$this->repository = $repository;
* Publish the assets
public function publish()
if (!$this->finder->isDirectory($sourcePath = $this->getSourcePath())) {
$message = "Source path does not exist : {$sourcePath}";
throw new \InvalidArgumentException($message);
if (!$this->finder->isDirectory($destinationPath = $this->getDestinationPath())) {
$this->finder->makeDirectory($destinationPath, 0775, true);
if ($this->finder->copyDirectory($sourcePath, $destinationPath)) {
return true;
* Get the original source path
* @return string
public function getSourcePath()
return $this->theme->getPath() . '/assets';
* Get the destination path
public function getDestinationPath()
return $this->repository->getAssetPath($this->theme->getLowerName());