Download the PHP package everest/container without Composer
On this page you can find all versions of the php package everest/container. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download everest/container
More information about everest/container
Files in everest/container
Package container
Short Description Everest - Dependency Container Component
License MIT
Informations about the package container
Everest - Container
This Everest component handles Dependency Injection. It's inspired by the AngularJS injector and Pimple\Container.
Usage
Injection
Dependencies can be injected into services and factories using a dependency array ['dependencyA', 'dependencyB', $callableOrClassname] where the dependecies will be given to the callable or the class constructor as arguments.
A (slower) way is using the parameter names of the callable or constructor to specify the dependencies. E.g. function($dependencyA, $dependencyB) {...} has the same result as ['dependencyA', 'dependencyB', function($depA, $depB) { /*...*/ }].
Note: This does not work with inner callbacks!
Constant
Constants can be defined using the self Everest\Container\Container::constant(string $name, mixed $value)-method.
Note: Constants are available during the provider configation cycle!
Values
Values can be defined using the self Everest\Container\Container::value(string $name, mixed $value)-method.
Factory
Factorys can be defined using the self Everest\Container\Container::factory(string $name, mixed $factory-method.
Service
Services can be defined using the self Everest\Container\Container::service(string $name, mixed $service)-method.
The service-method expects a class name or a dependency array with the class name as last element as argument. E.g. ['dependencyA', 'dependencyB', 'Vendor\\Project\\Service'] or just (slower) 'Vendor\\Project\\Service' where the parameter names of the constructor are used to inject the dependencies.
Decorator
You can use the self Everest\Container\Container::decorator(string $name, mixed $decorator)-method to overload existing dependencies while receiving the original instance as local dependency. Decorators MUST be a factory or a provider.
Provider
A provider can be any object having the public property factory describing the factory as dependency array. A provider can be set using the self Everest\Container\Container::provider(string $name, object $provider)-method.
Providers can be accessed during configuration process by using their name with Provider suffix as dependency.