File "ArrayDefinitionExtension.php"
Full Path: /home/elegucvf/public_html/elementor/vendor_prefixed/php-di/php-di/src/Definition/ArrayDefinitionExtension.php
File size: 1007 B
MIME-type: text/x-php
Charset: utf-8
<?php
declare (strict_types=1);
namespace ElementorDeps\DI\Definition;
use ElementorDeps\DI\Definition\Exception\InvalidDefinition;
/**
* Extends an array definition by adding new elements into it.
*
* @since 5.0
* @author Matthieu Napoli <matthieu@mnapoli.fr>
*/
class ArrayDefinitionExtension extends ArrayDefinition implements ExtendsPreviousDefinition
{
/**
* @var ArrayDefinition
*/
private $subDefinition;
public function getValues() : array
{
if (!$this->subDefinition) {
return parent::getValues();
}
return \array_merge($this->subDefinition->getValues(), parent::getValues());
}
public function setExtendedDefinition(Definition $definition)
{
if (!$definition instanceof ArrayDefinition) {
throw new InvalidDefinition(\sprintf('Definition %s tries to add array entries but the previous definition is not an array', $this->getName()));
}
$this->subDefinition = $definition;
}
}