Basic Container usage
As described in the Getting started guide, there are several ways to construct a container instance. It does not matter whether the container is generated by the factory, custom built, or created dynamically — the runtime API is identical for all of them.
This page is a short overview of how you get a container and where the detailed API lives:
- Parameters — reading, writing and checking configuration values.
- Services — resolving, listing, injecting and removing services, plus metadata lookups.
- Service Binding — registering new services at runtime.
Construction and parameters
The container constructor always accepts an initial array of parameters:
use ClanCats\Container\Container;
$container = new Container(['env' => 'production']);The same initial parameters can be passed when you build a container through the factory:
$factory = new \ClanCats\Container\ContainerFactory(__DIR__ . '/cache');
$container = $factory->create('AppContainer', function($builder) {}, ['env' => 'production']);These initial values are merged with any parameters already defined (for example the ones baked into a compiled container). See Parameters for the full reading and writing API.
The reserved container service
The name container is the only reserved service name and always refers to the container itself:
$container->get('container'); // === $containerGetting services and binding at runtime
Resolving services (get, has, available, isResolved, set, release, remove) is covered in Services. Registering new services on a live container — with a factory, a class name, or a closure — is covered in Service Binding. You can freely mix dynamically bound services with compiled ones.
