Download the PHP package kyrill/php-di-container without Composer
On this page you can find all versions of the php package kyrill/php-di-container. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kyrill/php-di-container
More information about kyrill/php-di-container
Files in kyrill/php-di-container
Package php-di-container
Short Description A php dependency injection container
License MIT
Informations about the package php-di-container
php-di-container
A simple automatic dependency injection container implemented in PHP.
Installation
To install this package, run the following command in your project root:
Usage
Create a container
You can create a container by instantiating the Container
class.
Register a class
You don’t have to register classes manually. All classes will be automatically resolved unless the constructor has an argument that is not a class.
Register a class with a function
You can register a class with a function by assigning it a unique name and providing a 'ClassDefinition' with constructor arguments, the class namespace, and whether it should be treated as a singleton (default is false). If no arguments are needed, you can pass an empty array.
Register classes by a file
You can create a JSON file with the following structure to register classes, aliases, or interfaces:
You can use aliases to register classes or interfaces. Aliases are useful if you want to use a class or interface with a different name. For aliases and interfaces you have to use the class
key. The arguments
key is optional. If you want to use a class or interface without arguments.
Register file
To register the file you need to make a ClassRegistar
class. You can register the file by using the registerFile
function. By default, there is a JsonFileReader
class. This class reads a json file and registers the classes or
interfaces. But you can make your own FileReader
class.
Make Your Own FileReader
To create your own FileReader
class, implement the FileReaderInterface
. This interface defines a single method:
readFile()
. The method must return an array of classes, aliases, or interfaces.
The file must start with the keyword services
, and all classes, aliases, or interfaces should be listed under it.
Get a Class
You can retrieve a class using the resolve
function. To resolve an alias, pass the alias namespace as a string, like this:
'namespace\\alias'
.
License
This project is licensed under the MIT License - see the LICENSE.md file for details