Estou desenvolvendo uma API seguindo os conceitos DDD [Domain Driven Design (DDD)]
Estou desenvolvendo a camada de Domínio,
Porém estou tendo um erro no meu projeto quando carrego uma interface em um método em meu controle.
A mensagem é:
Target [Domain\Interfaces\Repositories\IRepositoryUsuario] is not instantiable.Eu realmente não sei se estou fazendo o acesso as classes que estão dentro da pasta DOMAIN da forma correta a traves deste controle, mas a ideia é somente testar a minha regra de negocio como validações de uma entidade.
a pasta Domain esta fora da pasta App do laravel acho que isso que torna as coisas mais dificeis
porem no meu composer ja tinha definido este diretorio
.
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/",
"Domain\\": "Domain/"
}
no controle que crie para acessar as classes da pasta Domain esta assim :
<?php
namespace App\Http\Controllers;
use Domain\Arguments\Usuario\AutenticarUsuarioRequest;
use Domain\Interfaces\Repositories\IRepositoryUsuario;
use Domain\Services\ServiceUsuario;
use Illuminate\Http\Request;
class TesteController extends Controller
{
public function index(IRepositoryUsuario $_repositoryUsuario){
$service = new ServiceUsuario($_repositoryUsuario);
$request = new AutenticarUsuarioRequest();
//$request->getEmail()
return $service->AutenticarUsuario($request);
}
}
ao acessar a traves da rota :
Route::get('/teste', 'TesteController@index');
retorna este erro :