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.