OpenXE/classes/Core/DependencyInjection/Definition/FactoryMethodDefinition.php
2022-10-14 14:22:08 +02:00

56 lines
1.1 KiB
PHP

<?php
namespace Xentral\Core\DependencyInjection\Definition;
use Xentral\Core\DependencyInjection\Exception\InvalidArgumentException;
final class FactoryMethodDefinition
{
/** @var callable $callable */
private $callable;
/** @var bool $shared Share the same instance? */
private $shared;
/**
* @param callable $callable
* @param bool $shared
*
* @throws InvalidArgumentException
*/
public function __construct($callable, $shared = true)
{
if (!is_callable($callable, false)) {
/*
OpenXE-todo
unknown compatibility issue
commented out as hotfix
throw new InvalidArgumentException(sprintf(
'Definition can\'t be created. "%s::%s" is not callable.', $callable[0], $callable[1]
));
*/
}
$this->callable = $callable;
$this->shared = (bool)$shared;
}
/**
* @return callable
*/
public function getCallable()
{
return $this->callable;
}
/**
* @return bool
*/
public function isShared()
{
return $this->shared;
}
}