Análise de Estrutura
Olá pessoal!
Tenho estudado ultimamente alguns padrões de projeto para o desenvolvimento de meu framework pessoal.
Até agora, terminei a camada de abstração para as instruções SQL, onde utilizei o padrão Query Object.
Com isso não encontrei muitas dificuldades.
Minhas dúvidas encontram-se realmente na parte dos design patterns abstraem as camadas da aplicação em seus devidos lugares, como o model (persistência, regras de negócio e active records).
Por enquanto pensei na seguinte estrutura de exemplo:
- Entidade.action.php (Esta camada conversa diretamente com o controller);
- Entidade.bo.php (Nesta camada encotram-se as regras de negócio para a próxima camada, que seria de persistência);
- Entidade.ar.php (Aqui estará a persistência por si só. Esta camada geralmente será filha da Base.ar.php, que conterá as operações básicas de CRUD com o banco de dados);
Seguem os exemplos:
Cliente.action.php
class ClienteAction extends BaseAction {
private $entidade;
public function __construct() {
$this->entidade = 'tb_cliente';
}
public function doCadastroCliente($dados) {
if(is_array($dados)) {
$bo = new ClienteBO();
return $bo->doCadastroCliente($dados);
}
}
}
Cliente.bo.php
class ClienteBO extends BaseBO {
public function doCadastroCliente($dados) {
$ar = new ClienteAR();
foreach($dados as $coluna => $valor) {
if($valor == 'teste') {
throw new Exception('morreu!');
} else {
return $ar->store($dados);
}
}
}
}
Cliente.ar.php
class ClienteAR extends BaseAR {
const ENTIDADE = 'tb_cliente';
public function store($dados) {
if(is_array($dados)) {
return BaseAR::store($dados, self::ENTIDADE);
}
}
}
O que acham desta estrutura?
Discussão (4)
Carregando comentários...