__inkeke в Symfony - PullRequest
       17

__inkeke в Symfony

0 голосов
/ 07 марта 2019

Я хочу разделить свою кодовую базу на простые, специализированные классы, такие как:

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. Как это сделать?

Заранее спасибо.

1 Ответ

0 голосов
/ 08 марта 2019

Не уверен, чего вы хотите достичь, но если вы хотите добавить / получить ключевое слово везде в вашей кодовой базе, у вас есть 2 варианта:

  • Использовать автопроводку
  • Объявите свой класс как сервис и получите его из контейнера.

Symfony поддерживает DI с помощью автоматической проводки.

namespace App\Controller;

use App\AddKeyword;

class DefaultController
{
    public function __construct(Addkeyword $keyword) {
        $keyword('keyword');
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...