Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Meu DAO e Service

Imaginei a seguinte arquitetura para minha aplicação MVC : Gostaria da opinião dos senhores sobre a aplicação do padrão DAO e Service, se foge muito disso ou não etc ...

Chamada com reescrita de URL : http://localhost/minha_app_legal/aluno/matricular/Joaozinho

-- index.php

$db = new MySQLDatabase();
$controller = new Controller();
$controller->matricular( $nome, $db );

-- Controller.php

class Controller {

  public function matricular( $nome, $db ) {
    AlunoService->matricular($nome, $db);
    return Tela->exibir();
  }

}

-- MySQLDatabase.php

class Database {
   public function query($query) {
    $db->query($query);
   }
}
class MySQLDatabase extends Database {
   public __construct () {
     // criar banco com as especificações do MySQL ....
   }
}

-- AlunoDAO.php

class AlunoDAO {

  public function existe($nome, $database) {
      return $database->query(' SELECT count(*) FROM Aluno WHERE nome ="' . $ nome . '" ');
   }

   public function matricular($nome, $database) {
      $database->query(' INSERT INTO Aluno ("nome") VALUES ("' . $ nome . '") ');
   }

}

-- AlunoService.php

class AlunoService {
  public function matricular($nome, $database) {
    if ( !AlunoDAO->existe($nome, $database) ) {
       AlunoDAO->matricular($nome, $database) ;
    }
  }
}
5 respostas
solução!

Nesse caso, achei até justo o service.. vc precisa adicionar esse if de regra de negócio aí. Só toma cuidado para o service não virar um mero delegador de chamadas para o dao.

Puxa, legal! Encontrei algo bem melhor do que acompanhar esta porcaria inútil do Carnaval. hehe

Enfim, você acha que isso segue o padrão SOLID ?

Você já trabalhou com essa arquitetua? Está trabalhando com uma variação da mesma? Qual seria?

Solid não é uma arquitetura... são apenas princípios que você pode seguir no seu código :). Faça código coeso, desacoplado etc que, provavelmente, vc estará dentro do solid.

Claro que não :-)

Perguntei se isso tudo aí obedecia ...

Ademais, vc usa está arquitetura no dia a dia ou uma variação dela ?

Opa, tento seguir os princípios sim.. acho que são super válidos.