Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #275: Introduce parameters bag for container #276

Merged
merged 14 commits into from Nov 26, 2021
24 changes: 12 additions & 12 deletions README.md
Expand Up @@ -52,7 +52,7 @@ file:
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig())
$config = ContainerConfig::create()
->withDefinitions($definitions);

$container = new Container($config);
Expand Down Expand Up @@ -115,7 +115,7 @@ retrieved by a more handy name:
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig())
$config = ContainerConfig::create()
->withDefinitions([
EngineInterface::class => EngineMarkOne::class,
'engine_one' => EngineInterface::class,
Expand All @@ -138,14 +138,14 @@ use Yiisoft\Di\ContainerConfig;

$composite = new CompositeContainer();

$carConfig = (new ContainerConfig())
$carConfig = ContainerConfig::create()
->withDefinitions([
EngineInterface::class => EngineMarkOne::class,
CarInterface::class => Car::class
]);
$carContainer = new Container($carConfig);

$bikeConfig = (new ContainerConfig())
$bikeConfig = ContainerConfig::create()
->withDefinitions([
BikeInterface::class => Bike::class
]);
Expand All @@ -167,7 +167,7 @@ use Yiisoft\Di\CompositeContainer;
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$carConfig = (new ContainerConfig())
$carConfig = ContainerConfig::create()
->withDefinitions([
EngineInterface::class => EngineMarkOne::class,
CarInterface::class => Car::class
Expand All @@ -183,7 +183,7 @@ $car = $composite->get(CarInterface::class);
// Returns an instance of a `EngineMarkOne` class.
$engine = $car->getEngine();

$engineConfig = (new ContainerConfig())
$engineConfig = ContainerConfig::create()
->withDefinitions([
EngineInterface::class => EngineMarkTwo::class,
]);
Expand Down Expand Up @@ -265,7 +265,7 @@ configuration array in the additional config:
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig())
$config = ContainerConfig::create()
->withProviders([CarFactoryProvider::class]);

$container = new Container($config);
Expand All @@ -282,7 +282,7 @@ You can tag services in the following way:
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig())
$config = ContainerConfig::create()
->withDefinitions([
BlueCarService::class => [
'class' => BlueCarService::class,
Expand Down Expand Up @@ -311,7 +311,7 @@ Another way to tag services is setting tags via container constructor:
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig())
$config = ContainerConfig::create()
->withDefinitions([
BlueCarService::class => [
'class' => BlueCarService::class,
Expand All @@ -337,7 +337,7 @@ is defined for each individual service by providing "reset" callback in the foll
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig())
$config = ContainerConfig::create()
->withDefinitions([
EngineInterface::class => EngineMarkOne::class,
EngineMarkOne::class => [
Expand Down Expand Up @@ -403,7 +403,7 @@ In order to configure delegates use additional config:
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig)->withDelegates([
$config = ContainerConfig::create()->withDelegates([
function (ContainerInterface $container): ContainerInterface {
// ...
}
Expand All @@ -422,7 +422,7 @@ turn it off:
use Yiisoft\Di\Container;
use Yiisoft\Di\ContainerConfig;

$config = (new ContainerConfig())
$config = ContainerConfig::create()
->withValidate(false);

$container = new Container($config);
Expand Down
9 changes: 9 additions & 0 deletions src/ContainerConfig.php
Expand Up @@ -15,6 +15,15 @@ final class ContainerConfig implements ContainerConfigInterface
private bool $validate = true;
private array $delegates = [];

samdark marked this conversation as resolved.
Show resolved Hide resolved
private function __construct()
{
}

public static function create()
samdark marked this conversation as resolved.
Show resolved Hide resolved
{
return new self();
}

/**
* @param array $definitions Definitions to put into container.
*
Expand Down