for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace h4kuna\Upload;
class DocumentRoot
{
/** @var array */
private $destinationDirs;
/** @var string */
private $alias;
private $default;
public function __construct(array $destinationDirs)
$this->destinationDirs = $destinationDirs;
reset($destinationDirs);
$this->default = $this->alias = key($destinationDirs);
}
/**
* @param string $alias
* @return self
* @throws AliasDoesNotExistsException
*/
public function setDestination($alias)
if (!isset($this->destinationDirs[$alias])) {
throw new AliasDoesNotExistsException($alias);
$this->alias = $alias;
return $this;
* @param string|IStoreFile $relativePath
* @return string
public function createAbsolutePath($relativePath)
if ($relativePath instanceof IStoreFile) {
$relativePath = $relativePath->getRelativePath();
$path = $this->destinationDirs[$this->alias] . DIRECTORY_SEPARATOR . $relativePath;
$this->alias = $this->default;
return $path;