Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / league / container / src / Definition / DefinitionFactory.php
diff --git a/vendor/league/container/src/Definition/DefinitionFactory.php b/vendor/league/container/src/Definition/DefinitionFactory.php
new file mode 100644 (file)
index 0000000..8f2c03d
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+namespace League\Container\Definition;
+
+use League\Container\ImmutableContainerAwareTrait;
+
+class DefinitionFactory implements DefinitionFactoryInterface
+{
+    use ImmutableContainerAwareTrait;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getDefinition($alias, $concrete)
+    {
+        if (is_callable($concrete)) {
+            return (new CallableDefinition($alias, $concrete))->setContainer($this->getContainer());
+        }
+
+        if (is_string($concrete) && class_exists($concrete)) {
+            return (new ClassDefinition($alias, $concrete))->setContainer($this->getContainer());
+        }
+
+        // if the item is not definable we just return the value to be stored
+        // in the container as an arbitrary value/instance
+        return $concrete;
+    }
+}