Da quanto ho capito, un DomainService dovrebbe essere implementato su una RepositoryInterface, quindi potremmo cambiare facilmente il repository (che è parte del livello Infrastructure)
Quindi, se ho:
class UserService{
    function __construct(UserRepository $rep){
        $this->rep = $rep;
    }
    function createNewUser($attributes){
        return $this->rep->create($attributes)->persist();
    }
}
Significa che nel mio ApplicationService (alcuni lo chiamano Action) avrei:
'' '
class UserAplicationService{
    function create(UserCreateCommand $command){
        $service = new UserService(new UserRepoitory());
        $service->create($command->getAttributes())
    }
}
'' '
Ciò significa che ogni volta che utilizzo il mio DomainService devo istanziare il mio oggetto repository. Non rendere questo ApplicationServices accoppiato con l'implementazione del repository?
Domanda : dove devo creare un'istanza per gli oggetti del repository utilizzati nei servizi di dominio?