Tentative de régler le bordel

This commit is contained in:
Gauvain Boiché
2020-03-31 15:58:31 +02:00
parent a1864c0414
commit 459b46df7b
345 changed files with 10758 additions and 4066 deletions

View File

@@ -49,21 +49,6 @@ class service_collection extends \ArrayObject
return new service_collection_iterator($this);
}
// Because of a PHP issue we have to redefine offsetExists
// (even with a call to the parent):
// https://bugs.php.net/bug.php?id=66834
// https://bugs.php.net/bug.php?id=67067
// But it triggers a sniffer issue that we have to skip
// @codingStandardsIgnoreStart
/**
* {@inheritdoc}
*/
public function offsetExists($index)
{
return parent::offsetExists($index);
}
// @codingStandardsIgnoreEnd
/**
* {@inheritdoc}
*/
@@ -76,11 +61,11 @@ class service_collection extends \ArrayObject
* Add a service to the collection
*
* @param string $name The service name
* @return null
* @return void
*/
public function add($name)
{
$this->offsetSet($name, null);
$this->offsetSet($name, false);
}
/**
@@ -103,4 +88,35 @@ class service_collection extends \ArrayObject
{
return $this->service_classes;
}
/**
* Returns the service associated to a class
*
* @return mixed
* @throw \RuntimeException if the
*/
public function get_by_class($class)
{
$service_id = null;
foreach ($this->service_classes as $id => $service_class)
{
if ($service_class === $class)
{
if ($service_id !== null)
{
throw new \RuntimeException('More than one service definitions found for class "'.$class.'" in collection.');
}
$service_id = $id;
}
}
if ($service_id === null)
{
throw new \RuntimeException('No service found for class "'.$class.'" in collection.');
}
return $this->offsetGet($service_id);
}
}