lackovic10 / container
A simple Container implementation (copied from symfony)
v1.0
2018-01-27 16:00 UTC
Requires
- php: >=7.2
- psr/container: ^1.0
Requires (Dev)
- phpunit/phpunit: ^6
This package is not auto-updated.
Last update: 2024-04-19 19:03:14 UTC
README
The idea is copied from symfony. It's a simplification for the above mentioned implementation, the services need to be added manually to the class.
A usage example
<?php
namespace Container;
final class SampleContainer extends AbstractContainer
{
protected $services = [
'repository.user' => null,
'manager.redis_cache' => null,
];
protected function getRepository_UserService(
string $id, bool $newInstance
): \SampleProject\Repository\UserRepository {
if ($newInstance || ! $this->services[$id]) {
$this->services[$id] = new \SampleProject\Repository\UserRepository(
$this->getService('manager.redis_cache', [], $newInstance)
);
}
return $this->services[$id];
}
protected function getManager_RedisCacheService(
string $id, bool $newInstance
): \SampleProject\Manager\RedisCacheManager {
if ($newInstance || ! $this->services[$id]) {
$this->services[$id] = new \SampleProject\Manager\RedisCacheManager();
}
return $this->services[$id];
}
}