DependencyInjection/Dependency.php
<?php
namespace Phug\DependencyInjection;
use Closure;
use Phug\Util\Partial\NameTrait;
use Phug\Util\Partial\ValueTrait;
use Phug\Util\UnorderedArguments;
class Dependency
{
use NameTrait;
use ValueTrait;
/**
* @var array
*/
private $dependencies;
public function __construct($value)
{
if ($value instanceof Closure) {
$value->bindTo(null);
}
$this->setValue($value);
$arguments = new UnorderedArguments(array_slice(func_get_args(), 1));
if ($name = $arguments->optional('string')) {
$this->setName($name);
}
$this->setDependencies($arguments->optional('array') ?: []);
$arguments->noMoreDefinedArguments();
}
/**
* @param array<string> $dependencies
*/
public function setDependencies(array $dependencies)
{
$this->dependencies = $dependencies;
}
/**
* @return array<string>
*/
public function getDependencies()
{
return $this->dependencies;
}
}