library container
A simple Container implementation (copied from symfony)
lackovic10/container
A simple Container implementation (copied from symfony)
- Saturday, January 27, 2018
- by lackovic10
- Repository
- 0 Watchers
- 0 Stars
- 1 Installations
- 0 Dependents
- 0 Suggesters
- 0 Forks
- 0 Open issues
- 2 Versions
- 0 % Grown
A simple Container implementation
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., (*1)
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];
}
}