我想将我的代码库拆分为简单的一类特定于目的的类,
class AddKeyword
{
/**
* @var KeywordRepository
*/
private $keywordRepository;
public function __construct(KeywordRepository $keywordRepository)
{
$this->keywordRepository = $keywordRepository;
}
public function __invoke(string $name): Keyword
{
$entity = $this->keywordRepository->findOneByName($name);
if ($entity)
return $entity;
$entity = Keyword::create(KeywordId::create(), $name);
$this->keywordRepository->save($entity);
return $entity;
}
}
但是对于使用该类,我必须解析DI。怎么做?
谢谢。
答案 0 :(得分:0)
不确定要实现的目标,但是如果要在代码库中的任何位置添加/获取关键字,则有两种选择:
Symfony通过自动装配来鼓励DI。
namespace App\Controller;
use App\AddKeyword;
class DefaultController
{
public function __construct(Addkeyword $keyword) {
$keyword('keyword');
}
}