Skip to content

PSR-11 container implementation with factory pattern

License

Notifications You must be signed in to change notification settings

Logifire/nano-container

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nano-container

Scrutinizer Code Quality Build Status

A PSR-11 container implementation

Usage

Basics

$factory = new ContainerFactory();

$factory->set('my_value', 42);

$factory->register('my_service', function(Container $c) {
    return 100 + $c->get('my_value');
});

$container = $factory->createContainer();

echo $container->get('my_value'); // 42

echo $container->get('my_service'); // 142

Grouping configurations You can group configurations into providers, which takes a ContainerFactory

class ControllerProvider implements FactoryProvider {
    public function register(ContainerFactory $factory) {
        $factory->register(LoginController::class, function(Container $c) {
            return new LoginController();
        });
    }
}

$factory = new ContainerFactory();
$factory->addProvider(new ControllerProvider());
$container = $factory->createContainer();
$controller = $container->get(LoginController::class);

About

PSR-11 container implementation with factory pattern

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages