3 namespace League\Container\Definition;
5 use League\Container\ImmutableContainerAwareTrait;
7 class DefinitionFactory implements DefinitionFactoryInterface
9 use ImmutableContainerAwareTrait;
14 public function getDefinition($alias, $concrete)
16 if (is_callable($concrete)) {
17 return (new CallableDefinition($alias, $concrete))->setContainer($this->getContainer());
20 if (is_string($concrete) && class_exists($concrete)) {
21 return (new ClassDefinition($alias, $concrete))->setContainer($this->getContainer());
24 // if the item is not definable we just return the value to be stored
25 // in the container as an arbitrary value/instance