reliese/component-dependency

Dependencies Component

v1.0.0 2021-03-11 03:17 UTC

This package is auto-updated.

Last update: 2024-04-11 09:57:03 UTC


README

This is the definition of a Dependency Container, also known as Inversion of Control Container, Service Container.

The Container Interface

It comes with three groups of methods:

Dependency Registration

  • Allows for singleton registration
/**
 * @param string $dependency
 * @param Closure $abstraction
 *
 * @return Container
 */
public function singleton(string $dependency, Closure $abstraction) : Container;
  • Allows for a non singleton registration
/**
 * @param string $dependency
 * @param Closure $abstraction
 *
 * @return Container
 */
public function register(string $dependency, Closure $abstraction) : Container;

Service Location

Each registered dependency can be retrieved with the resolve method.

/**
 * @param string $dependency
 *
 * @return mixed
 * @throws UnresolvableDependencyException
 */
public function resolve(string $dependency);

Method Injection

/**
 * @param object $object
 * @param string $method
 *
 * @return mixed
 * @throws UnresolvableDependencyException
 */
public function call(object $object, string $method);