|
@@ -31,6 +31,19 @@ class IoC {
|
|
static::$registry[$name] = compact('resolver', 'singleton');
|
|
static::$registry[$name] = compact('resolver', 'singleton');
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * Unregister an object
|
|
|
|
+ *
|
|
|
|
+ * @param string $name
|
|
|
|
+ */
|
|
|
|
+ public static function unregister($name)
|
|
|
|
+ {
|
|
|
|
+ if (array_key_exists($name, static::$registry)) {
|
|
|
|
+ unset(static::$registry[$name]);
|
|
|
|
+ unset(static::$singletons[$name]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Determine if an object has been registered in the container.
|
|
* Determine if an object has been registered in the container.
|
|
*
|
|
*
|
|
@@ -141,6 +154,7 @@ class IoC {
|
|
* @param string $type
|
|
* @param string $type
|
|
* @param array $parameters
|
|
* @param array $parameters
|
|
* @return mixed
|
|
* @return mixed
|
|
|
|
+ * @throws \Exception
|
|
*/
|
|
*/
|
|
protected static function build($type, $parameters = array())
|
|
protected static function build($type, $parameters = array())
|
|
{
|
|
{
|
|
@@ -193,7 +207,7 @@ class IoC {
|
|
$dependency = $parameter->getClass();
|
|
$dependency = $parameter->getClass();
|
|
|
|
|
|
// If the person passed in some parameters to the class
|
|
// If the person passed in some parameters to the class
|
|
- // then we should probably use those instead of trying
|
|
|
|
|
|
+ // then we should probably use those instead of trying
|
|
// to resolve a new instance of the class
|
|
// to resolve a new instance of the class
|
|
if (count($arguments) > 0)
|
|
if (count($arguments) > 0)
|
|
{
|
|
{
|
|
@@ -205,7 +219,7 @@ class IoC {
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- $dependencies[] = static::resolve($dependency->name);
|
|
|
|
|
|
+ $dependencies[] = static::resolve($dependency->name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -218,6 +232,7 @@ class IoC {
|
|
*
|
|
*
|
|
* @param ReflectionParameter
|
|
* @param ReflectionParameter
|
|
* @return default value
|
|
* @return default value
|
|
|
|
+ * @throws \Exception
|
|
*/
|
|
*/
|
|
protected static function resolveNonClass($parameter)
|
|
protected static function resolveNonClass($parameter)
|
|
{
|
|
{
|
|
@@ -229,6 +244,6 @@ class IoC {
|
|
{
|
|
{
|
|
throw new \Exception("Unresolvable dependency resolving [$parameter].");
|
|
throw new \Exception("Unresolvable dependency resolving [$parameter].");
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|