簡體   English   中英

如何在 Aura.Di 中容器化構建器類?

[英]How to containerize a builder class in Aura.Di?

如果沒有 DI 容器,你通常會做這樣的事情:

$foo = (new FooBuilder)
->setA('a')
->setB('b')
->build();

// where $foo becomes an instance of Foo class

你如何在Aura.Di中注冊/容器化類似的東西?

找到了。 對於那些關心的人,它是lazyGetCall()

例如,如果你有這樣的事情:

$foo = (new FooBuilder)
->setA('a')
->setB('b')
->build();

您可以像這樣將其容器化:

$builder = new \Aura\Di\ContainerBuilder;
$di = $builder->newInstance();
$di>setters['FooBuilder']['setA'] = 'a';
$di>setters['FooBuilder']['setB'] = 'b';
$di->set('FooBuilder', $di->lazyNew('FooBuilder'));
$di->set('Foo', $di->lazyGetCall('FooBuilder', 'build'));

然后你可以像這樣在別處調用它: $fooInstance = $di->get('Foo');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM