Download the PHP package phpixie/di without Composer
On this page you can find all versions of the php package phpixie/di. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package di
Short Description Dependency injection container for PHPixie
License BSD-3-Clause
Homepage http://phpixie.com
Informations about the package di
DI
PHPixie Dependency Injection library
PHPixie DI is a simple, fast, strict and flexible dependency injection container designed to make your code more decoupled and allow for more fluid development. It also provides an optional static interface that most DI containers usually miss.
Usage
To start using DI extend the base container specifying your configuration with the configure()
method:
It is also possible to use the container to access deep methods in container services,
for example if the TwitterService
class contains a getTweets
method, it's possible to
call it like this:
The configurations methods such as value
and callback
are defined as protected
so they
are only accessable from within the class. This makes the container immutable once it's initialized
and ensures that all configuration is contained in once place. Of course you can still allow that behavior
by overriding them as public
.
Type hinting in your IDE
Since the values are defined dynamically, you won't get type hinting for your services when
using the container. To get that functionality you can use the @method
annotation:
Usage with PHPixie
All PHPixie components use Factory classes to build dependencies, but the default bundle comes with a base container that already contains some useful configuration. It also makes this component entirely optional.
First create your Container class:
And register it in your Builder:
The Builder will automatically initialize your container once it is defined, so you can use static methods immediately if you like. And some usage examples: