A collection of useful containers for Caldera (or your) development.
composer require calderawp/caldera-containers
-
calderawp\CalderaContainers\Container
Basic PSR-11 compatible container decorating Pimple.- Is abstract.
- Converts to arrays.
calderawp\CalderaContainers\Interfaces\Arrayable
- Converts to JSON.
JsonSerializable
-
calderawp\CalderaContainers\ControlledContainer
Extends the base container but only allows in specified attributes.- Is abstract
-
calderawp\CalderaContainers\Service\Coantainer
A basic service container, with provider bindings, lazy-loaded objects, and singletons.
@todo
@todo
Add a binding that returns a new object of the same class using the alias std
$container = new \calderawp\CalderaContainers\Service\Container();
$container->bind( 'std', function (){
$obj = new \stdClass();
$obj->foo = rand();
return $obj;
});
//$obj1->foo !== $obj2->foo
$obj1 = $container->make('std');
$obj2 = $container->make('std');
Add a binding that returns a the same object of the same class using the alias std
. You MUST instantiate class before binding.
$container = new \calderawp\CalderaContainers\Service\Container();
$obj = new \stdClass();
$obj->foo = rand();
$container->singleton( 'std', $obj );
//$obj1->foo === $obj2->foo
$obj1 = $container->make('std');
$obj2 = $container->make('std');
Add a binding that returns a the same object of the same class using the alias std
. Class is instantiated 1 times, but is not instantiated until used, if ever.
$container = new \calderawp\CalderaContainers\Service\Container();
$container->singleton( 'std', function (){
$obj = new \stdClass();
$obj->foo = rand();
return $obj;
});
//$obj1->foo === $obj2->foo
$obj1 = $container->make('std');
$obj2 = $container->make('std');
## Stuff.
Copyright 2018 CalderaWP LLC. License: GPL v2 or later.