lee / simple-container
PHP library that reflect the specific classes
Requires
- php: >=7.1.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-10-26 19:48:23 UTC
README
Introduction
This is about the simple container to help developers to understand how the Reflection works.
Usage
Firstly, you have to specify a class that you want to inject.
For example, we assume that you want to inject following Profile
class:
class Profile { protected $userName; public function __construct($userName = 'lee') { $this->userName = $userName; } public function getUserName() { return $this->userName; } }
Then we use the Container
class to inject this Profile
class.
use Lee\Container\Container; $container = new Container(); $container->set(Profile::class); $profile = $container->get(Profile::class); echo $profile->getUserName(); // lee
If you want to inject class that its constructor arguments is without the default value, we should specify them by ourselves.
The sample codes are as follows:
class Profile { protected $userName; public function __construct($userName) { $this->userName = $userName; } public function getUserName() { return $this->userName; } }
Then we use Container
class to inject this class.
use Lee\Container\Container; $container = new Container(); $container->set(Profile::class); $profile = $container->get(Profile::class, ['userName' => 'Peter']); echo $profile->getUserName(); // Peter
References
This simple-container is about implementing this post.
However, this post we refer is incorrect on some approaches.
We decide to implement this PHP package to complete the correct container example.