Desenvolvimento - PHP

PHP: Aprenda um pouco sobre Classes e Objetos

Artigo de simples entendimento para programadores PHP iniciantes e intermediários.

por Newton Pasqualini



Gostaria de agradecer os elogios e críticas feitas em meu artigo anterior “mysql: Paginação de registros” (http://www.linhadecodigo.com.br/artigos.asp?id_ac=375&sub=46) e mandar um abraço ao pessoal que entrou em contato comigo pelo e-mail/MSN webmaster@softwebsite.net para tirar suas dúvidas.

Introdução

De forma simples vamos responder as seguintes questões:

O que é uma classe?
Uma classe é um conjunto de funções.

O que é um objeto?
Um objeto é o que retorna de uma classe.

Classes são úteis no meu site? Por que?

Sim. Supondo que você tem um site grande e tem 3000 páginas e agora você precisa mudar o layout (cara, formato, estilo, etc..) do seu site, imagine você tendo de abrir os 3000 arquivos e altera-los um a um, vai dar trabalho!

Neste caso, você poderia criar 1 arquivo com uma classe servindo de template, você desenvolve funções distintas para formar os objetos (menu, barra superior, conteúdo, estilo CSS, etc...) no site.

Isso com certeza irá facilitar, e muito, você a fazer esse trabalho arduo, sem contar na otimização do espaço em disco, uma vez que boa parte de todo o conteúdo do seu site está em 1 arquivo só.

Classes podem ser usadas em vários outros momentos onde você tenha a necessidade de criar algo, a ser alterado modificando um arquivo ou modificando uma variável.

Vamos entender mais disso na prática!

Criando

Vamos criar uma classe chamada de “template”:

classe.php
<?
class template {

}
?>

Pronto, acima nós criamos uma classe chamada “template”, agora vamos criar a função que vai gerar o menu dentro da classe template a partir de um Array, observe que antes temos de definir, no início da classe, quais variáveis usaremos nas funções:

classe.php

<?
class template {

var $opcoes;
var $categoria;

function menu($opcoes, $categoria = null){
$this->array_menu = $opcoes["principal"];
// Qndo usamos $this fazemos com que
// esta variável seja exclusivamente desta função da classe.
// $this->array_menu é uma variável, escrita diferentemente,
// podemos setar variáveis de classe assim também: $array_menu.

while (list($chave, $valor)=each($this->array_menu)) {
$this->menu .= "<a href="?categoria="".$chave."">".$valor."</a><br>"."\n";
}

// Cria o menu a partir da categoria setada.

return $this->menu;
// Retorna o menu como objeto da classe “template”.
}
}
// Aqui terminei a classe

// Chamando a classe
$classe_template = new template();

// Vamos definir as variáveis para o objeto
$array_opcoes["principal"][0] = "Op. 1";
$array_opcoes["principal"][1] = "Op. 2";
$array_opcoes["principal"][2] = "Op. 3";

// Mostrando o objeto
echo $classe_template->menu($array_opcoes, $_GET["categoria"]);

if (!$_GET["categoria"]){
echo "Você não selecionou nenhuma categoria.";
} else {
$cat = $array_opcoes[$_GET[categoria]];
echo "Você está na categoria: $cat";
}
?>

Espero que tenham gostado e aprendido ao menos um pouco sobre isso.

Classes e Objetos é um assunto extremamente profundo, pratiquem o que aprenderam, no próximo artigo vou falar um pouco sobre classes extendidas ou sub-classes.

Continuo à disposição pelo e-mail/MSN webmaster@softwebsite.net para tirar dúvidas.

Um grande abraço.

Newton Pasqualini

Newton Pasqualini - Programador sênior em uma agência de propaganda, desenvolvedor/defensor de softwware livre e instrutor de PHP aos finais de semana.