[英]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.