3 namespace League\Container;
5 interface ContainerInterface extends ImmutableContainerInterface
8 * Add an item to the container.
10 * @param string $alias
11 * @param mixed|null $concrete
12 * @param boolean $share
13 * @return \League\Container\Definition\DefinitionInterface
15 public function add($alias, $concrete = null, $share = false);
18 * Convenience method to add an item to the container as a shared item.
20 * @param string $alias
21 * @param mixed|null $concrete
22 * @return \League\Container\Definition\DefinitionInterface
24 public function share($alias, $concrete = null);
27 * Add a service provider to the container.
29 * @param string|\League\Container\ServiceProvider\ServiceProviderInterface $provider
32 public function addServiceProvider($provider);
35 * Returns a definition of an item to be extended.
37 * @param string $alias
38 * @return \League\Container\Definition\DefinitionInterface
40 public function extend($alias);
43 * Allows for manipulation of specific types on resolution.
46 * @param callable|null $callback
47 * @return \League\Container\Inflector\Inflector|void
49 public function inflector($type, callable $callback = null);
52 * Invoke a callable via the container.
54 * @param callable $callable
58 public function call(callable $callable, array $args = []);