Olá pessoal, recentemente comecei a estudar JAVA e vou dizer que este curso esta me ajudando muito!! Tanto em relação ao próprio JAVA quanto ao PHP.
Digo isso por quê estou mudando a visão estrutural que tinha para OO, e recentemente tem tomado mais cuidado na hora de escrever as classes, tomando principalmente cuidado com os padrões.
Alguns padrões que sigo:
Variáveis em minúsculas, caso sejam compostas a primeira letra da composição em maiúsculo.
Constantes em maiúsculas e caso seja composta separadas por underline “_”
As classes com nomes sugestivos e com a primeira letra em maiúscula e no singular (Ex: Cliente ).
Entre outros cuidados.
Mas vamos ao exemplo de uma classe MySQL (esta ainda tenho de revisar), uma chamada Cliente, um arquivo aonde fica as constantes do banco de dados (senha, usuario, banco e host) e o arquivo index.php que irá executar.
Bom a classe MySQL ficou desta forma.
<?php
class MySQL { var $dbi;
var $query;
// função que starta o MySql, sem ela é impossivel conectar ao banco
function open()
{ // conecta com o bd com as variáveis prédefinidas
$this->dbi = mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD);
if (!$this->dbi) { echo "Erro na conexão!";
}
if (!mysql_select_db(DB_DATABASE)) { echo "Erro na seleção do banco de dados!";
}
}
// faz a query
function query($query)
{
$queryBD = mysql_query($query);
$dados = mysql_fetch_array($queryBD);
return $dados;
}
// fecha a conexão com o bco de dados
function close()
{ mysql_close($this->dbi);
}
}
?>
Com isto já temos o suficiente para conectar ao banco, agora vamos ver a classe Cliente
<?php
/*
*
* Classe responsavel por cadastrar, editar, consultar e deletar clientes
*
*/
class Cliente { private $id;
private $nome;
private $email;
private $senha;
private $cpf;
function __construct($id=0, $nome="", $email="", $senha="", $cpf=0) { $this->id = $id;
$this->nome = $nome;
$this->email = $email;
$this->senha = $senha;
$this->cpf = $cpf;
}
public function getId(){ return $this->id;
}
public function getNome(){ return $this->nome;
}
public function getEmail(){ return $this->email;
}
public function getSenha(){ return $this->senha;
}
public function getCpf(){ return $this->cpf;
}
public function getById($id){ $db = new MySQL();
$db->open();
$cliente = $db->query("SELECT * FROM cliente WHERE id = $id and 1 = 1");
$db->close();
return new Cliente($cliente['id'], $cliente['nome'], $cliente['email'], $cliente['senha'], $cliente['cpf']);
}
public function getByNome($nome){ $db = new MySQL();
$db->open();
$busca = strtoupper($nome);
$cliente = $db->query("SELECT * FROM cliente WHERE UPPER(nome) = '$busca' and 1 = 1");
$db->close();
return new Cliente($cliente['id'], $cliente['nome'], $cliente['email'], $cliente['senha'], $cliente['cpf']);
}
}
?>
Agora vamos juntar as duas classes, vamos supor que no banco de dados na tabela cliente tivesse os seguintes dados com o id “1″.
Nome: Carlos Lorenzon
Email: carlos[]nextd.com.br
Usando a classe cliente pegarÃamos desta forma os dados
<?php
include 'conf.php'; // Aonde esta as constantes do banco e outras definições
include 'class/MySQL.php'; // Acesso ao banco de dados
include 'class/Cliente.php'; // Classe responsavel por administrar as informações dos clientes
$cliente = new Cliente();
$cliente = $cliente->getById(1);
echo $cliente->getEmail();
echo "<br />"
echo $cliente->getNome();
?>
O que imprimiria a seguinte informação
carlos[]nextd.com.br
Carlos Lorenzon
Bom espero que tenham gostado destas classes e desta forma de utilizar o PHP, abandonando o paradigma de linguagem estrutural e enriquecendo seu sistema (e quem sabe seu bolso também).
T+ pessoal