Imagine a sistema OO
that has at least 2 classes
:
Admins.php
Clientes.php
In real life, that is, in the system, customers can not register. In this case, the function to register the Client is administrador.
The question is: where should I include método
cadastrarCliente($Cliente)
?
In the Admins Class or in the Customers Class?
I'm doing this:
Clients.php
class Clientes {
private $idCliente;
private $nome;
private $documento;
private $senha;
private $endereco;
private $numero;
private $complemento;
private $bairro;
private $estado;
private $cidade;
private $cep;
private $email;
private $telefone;
private $celular;
private $bloqueado;
public function __construct(
$_nome,
$_documento,
$_senha,
$_endereco,
$_numero,
$_complemento,
$_bairro,
$_estado,
$_cidade,
$_cep,
$_email,
$_telefone,
$_celular,
$_bloqueado
)
{
$this->nome = $_nome;
$this->documento = $_documento;
$this->senha = $_senha;
$this->endereco = $_endereco;
$this->numero = $_numero;
$this->complemento = $_complemento;
$this->bairro = $_bairro;
$this->estado = $_estado;
$this->cidade = $_cidade;
$this->cep = $_cep;
$this->email = $_email;
$this->telefone = $_telefone;
$this->celular = $_celular;
$this->bloqueado = $_bloqueado;
}
public function setIdCliente ($_idCliente){
$this->idCliente = $_idCliente;
}
public function getIdCliente () {
return $this->idCliente;
}
public function getNome () {
return $this->nome;
}
public function getDocumento () {
return $this->documento;
}
public function getSenha () {
return $this->senha;
}
public function getEndereco () {
return $this->endereco;
}
public function getNumero () {
return $this->numero;
}
public function getComplemento () {
return $this->complemento;
}
public function getBairro () {
return $this->bairro;
}
public function getEstado () {
return $this->estado;
}
public function getCidade () {
return $this->cidade;
}
public function getCep () {
return $this->cep;
}
public function getEmail () {
return $this->email;
}
public function getTelefone () {
return $this->telefone;
}
public function getCelular () {
return $this->celular;
}
public function getBloqueado () {
return $this->bloqueado;
}
}
Customers.php
class ClientesDao {
private $conexao;
public function __construct ($_conexao) {
$this->conexao = $_conexao;
}
public function bloquear ($idCliente, $bloqueio) {
$string = "UPDATE clientes SET bloqueado = '".$bloqueio."' WHERE idCliente = ".$idCliente;
$this->conexao->query($string);
}
public function excluir ($idCliente) {
$string = "DELETE FROM clientes WHERE idCliente = ".$idCliente;
$this->conexao->query($string);
}
public function cadastrar ($cliente) {
$string = "INSERT INTO clientes (nome, documento, senha, endereco, numero, complemento, bairro, estado, cidade, cep, email, telefone, celular, bloqueado)
VALUES (
'".$cliente->getNome()."',
'".$cliente->getDocumento()."',
'".$cliente->getSenha()."',
'".$cliente->getEndereco()."',
'".$cliente->getNumero()."',
'".$cliente->getComplemento()."',
'".$cliente->getBairro()."',
'".$cliente->getEstado()."',
'".$cliente->getCidade()."',
'".$cliente->getCep()."',
'".$cliente->getEmail()."',
'".$cliente->getTelefone()."',
'".$cliente->getCelular()."',
'".$cliente->getBloqueado()."'
)";
$this->conexao->query($string);
}
public function ultimoIdCadastrado () {
return $this->conexao->insert_id;
}
public function editar ($cliente) {
$string = "UPDATE clientes
SET
nome = '".$cliente->getNome()."',
documento = '".$cliente->getDocumento()."',
senha = '".$cliente->getSenha()."',
endereco = '".$cliente->getEndereco()."',
numero = '".$cliente->getNumero()."',
complemento = '".$cliente->getComplemento()."',
bairro = '".$cliente->getBairro()."',
estado = '".$cliente->getEstado()."',
cidade = '".$cliente->getCidade()."',
cep = '".$cliente->getCep()."',
email = '".$cliente->getEmail()."',
telefone = '".$cliente->getTelefone()."',
celular = '".$cliente->getCelular()."',
bloqueado = '".$cliente->getBloqueado()."'
WHERE
idCliente = ".$cliente->getIdCliente();
$this->conexao->query($string);
}
public function alteraSenha ($senha, $idCliente) {
$string = "UPDATE clientes SET senha='".$senha."' WHERE idCliente = ".$idCliente;
$this->conexao->query($string);
}
public function pesquisaClienteId($idCliente) {
$cliente = null;
$string = "SELECT idCliente, nome, documento, senha, endereco, numero, complemento, bairro, estado, cidade, cep, email, telefone, celular, bloqueado
FROM clientes
WHERE idCliente = ".$idCliente;
$registros = $this->conexao->query($string);
$quantasLinhas = $registros->num_rows;
if ($quantasLinhas > 0)
{
list ($idCliente, $nome, $documento, $senha, $endereco, $numero, $complemento, $bairro, $estado, $cidade, $cep, $email, $telefone, $celular, $bloqueado) = $registros->fetch_row();
$cliente = new Clientes($nome, $documento, $senha, $endereco, $numero, $complemento, $bairro, $estado, $cidade, $cep, $email, $telefone, $celular, $bloqueado);
$cliente->setIdCliente($idCliente);
}
return $cliente;
}
public function pesquisaClienteDocumento($doc) {
$string = "SELECT idCliente
FROM clientes
WHERE documento = '".$doc."'";
$registros = $this->conexao->query($string);
$quantasLinhas = $registros->num_rows;
if ($quantasLinhas > 0)
{
return true;
}
return false;
}
public function pesquisaClienteEmail($email) {
$string = "SELECT idCliente
FROM clientes
WHERE email = '".$email."'";
$registros = $this->conexao->query($string);
$quantasLinhas = $registros->num_rows;
if ($quantasLinhas > 0)
{
return true;
}
return false;
}
public function pesquisaClienteNome($nomeCliente) {
$cliente = null;
$string = "SELECT idCliente, nome, documento, senha, endereco, numero, complemento, bairro, estado, cidade, cep, email, telefone, celular, bloqueado
FROM clientes
WHERE nome = '".$nomeCliente."'";
$registros = $this->conexao->query($string);
$quantasLinhas = $registros->num_rows;
if ($quantasLinhas > 0)
{
list ($idCliente, $nome, $documento, $senha, $endereco, $numero, $complemento, $bairro, $estado, $cidade, $cep, $email, $telefone, $celular, $bloqueado) = $registros->fetch_row();
$cliente = new Clientes($nome, $documento, $senha, $endereco, $numero, $complemento, $bairro, $estado, $cidade, $cep, $email, $telefone, $celular, $bloqueado);
$cliente->setIdCliente($idCliente);
}
return $cliente;
}
public function pesquisaNomeCliente($idCliente) {
$cliente = null;
$string = "SELECT nome FROM clientes WHERE idCliente = ".$idCliente;
$registros = $this->conexao->query($string);
$quantasLinhas = $registros->num_rows;
if ($quantasLinhas > 0)
{
list ($nome) = $registros->fetch_row();
$cliente = $nome;
}
return $cliente;
}
public function pesquisaClientes() {
$Clientes = null;
$string = "SELECT idCliente, nome, documento, senha, endereco, numero, complemento, bairro, estado, cidade, cep, email, telefone, celular, bloqueado FROM clientes";
$registros = $this->conexao->query($string);
$quantasLinhas = $registros->num_rows;
if ($quantasLinhas > 0) {
while (list ($idCliente, $nome, $documento, $senha, $endereco, $numero, $complemento, $bairro, $estado, $cidade, $cep, $email, $telefone, $celular, $bloqueado) = $registros->fetch_row()) {
$cliente = new Clientes($nome, $documento, $senha, $endereco, $numero, $complemento, $bairro, $estado, $cep, $cidade, $email, $telefone, $celular, $bloqueado);
$cliente->setIdCliente($idCliente);
$Clientes[] = $cliente;
}
}
return $Clientes;
}
}