3996e326d86be7e6c4f6a145ab9471c5eaba8d6e
[yaffs-website] / vendor / league / container / src / ContainerInterface.php
1 <?php
2
3 namespace League\Container;
4
5 interface ContainerInterface extends ImmutableContainerInterface
6 {
7     /**
8      * Add an item to the container.
9      *
10      * @param  string     $alias
11      * @param  mixed|null $concrete
12      * @param  boolean    $share
13      * @return \League\Container\Definition\DefinitionInterface
14      */
15     public function add($alias, $concrete = null, $share = false);
16
17     /**
18      * Convenience method to add an item to the container as a shared item.
19      *
20      * @param  string     $alias
21      * @param  mixed|null $concrete
22      * @return \League\Container\Definition\DefinitionInterface
23      */
24     public function share($alias, $concrete = null);
25
26     /**
27      * Add a service provider to the container.
28      *
29      * @param  string|\League\Container\ServiceProvider\ServiceProviderInterface $provider
30      * @return void
31      */
32     public function addServiceProvider($provider);
33
34     /**
35      * Returns a definition of an item to be extended.
36      *
37      * @param  string $alias
38      * @return \League\Container\Definition\DefinitionInterface
39      */
40     public function extend($alias);
41
42     /**
43      * Allows for manipulation of specific types on resolution.
44      *
45      * @param  string        $type
46      * @param  callable|null $callback
47      * @return \League\Container\Inflector\Inflector|void
48      */
49     public function inflector($type, callable $callback = null);
50
51     /**
52      * Invoke a callable via the container.
53      *
54      * @param  callable $callable
55      * @param  array    $args
56      * @return mixed
57      */
58     public function call(callable $callable, array $args = []);
59 }