Download the PHP package asgard/container without Composer
On this page you can find all versions of the php package asgard/container. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package container
Container
The container provides services to the application. In the Asgard framework, the container is often stored in the container variable.
- Installation
- Usage in the Asgard Framework
- Usage outside the Asgard Framework
- Registering a service
- Accessing a service
- Creating a new service instance
- Checking if a service exists
- Removing a service
- ContainerAware Trait
- Commands
Installation
If you are working on an Asgard project you don't need to install this library as it is already part of the standard libraries.
composer require asgard/container 0.*
Usage in the Asgard Framework
The container is often accessible as a method parameter or through a singleton but it is not recommended.
Usage outside the Asgard Framework
$container = new \Asgard\Container\Container;
#or
$container = new \Asgard\Container\Container::singleton();
Registering a service
$container->register('cache', function($container, $param) {
return new \Cache($param);
});
#or
$container['cache'] = new \Cache($param);
#or
$container->set('cache', new \Cache($param));
Register a service without persistency:
$container->register('cache', function($container, $param) {
return new \Cache($param);
}, false);
$container['cache'] will create a new instance every time it is called.
Accessing a service
$cache = $container->get('cache', [$param]);
#or
$cache = $container['cache'];
If you call it multiple times, the container will make sure the same instance is returned every time.
Creating a new service instance
$cache = $container->make('cache', [$param]);
Checking if a service exists
$container->has('cache');
#or
isset($container['cache']);
Removing a service
$container->remove('cache');
#or
unset($container['cache']);
ContainerAware Trait
This trait provides two methods:
- setContainer($container)
- getContainer()
and a protected member variable "$container".
To use it, add the following line in a class just after the opening bracket
use \Asgard\Container\ContainerAware;
Commands
ListCommand
Show all the services loaded in the application.
Usage:
php console services [--defined] [--registered]
--defined: to show where a service was defined
--registered: to shown where a service was registered
Contributing
Please submit all issues and pull requests to the asgardphp/asgard repository.
License
The Asgard framework is open-sourced software licensed under the MIT license