Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
47 lines (40 sloc) 1.05 KB
<?php
namespace Interop\Container\Factories;
use Interop\Container\ContainerInterface;
/**
* A factory that extends an existing array by adding an additional service to it.
*/
final class AddToArray
{
private $serviceName;
/**
* @param string $serviceName The identifier of the service that is added to the array
*/
public function __construct($serviceName)
{
$this->serviceName = $serviceName;
}
/**
* Returns the identifier of the service that is added to the array.
*
* @return string
*/
public function getAddedService()
{
return $this->serviceName;
}
/**
* Extend the array by adding a new service to it.
* The array is created if it does not exist yet.
*
* @param ContainerInterface $container
* @param array $previous
*
* @return array
*/
public function __invoke(ContainerInterface $container, array $previous = [])
{
$previous[] = $container->get($this->serviceName);
return $previous;
}
}