Publicado por: cassiotalle em: 7 07UTC Janeiro, 2009
Depois de quase um ano sem mexer no blog, estou de volta. Estou preprando mais posts sobre php e frameworks.
Publicado por: cassiotalle em: 25 25UTC Janeiro, 2008

Olá amigos, continuando a nossa série sobre Orientação a Objetos com PHP5, vamos conhecer hoje dois métodos (funções) especiais que são muito usadas na OO, que é o construtor __construct() e o destrutor __destruct() . Como o próprio nome já diz o método construtor é executado quando construímos (instanciamos) um objeto a partir de uma classe, no nosso exemplo criaremos uma classe que que manipula arquivos de texto.
Vejamos os exemplos de implementação de objetos:
Sem método cosntrutor:
$arquivo = new Arquivos();
$arquivo->recebePasta($pasta);
$arquivo->recebeNome(“exemplo.txt);
Com o método construtor:
$arquivo = new Arquivos($pasta, “exemplo.txt”);
Os códigos anteriores podem fazer a mesmíssima tarefa, mas a implementação neste caso é muito mais prática usando o método construtor.
O método destrutor é chamado automaticamente quando não existe mais nenhuma referencia ao objeto. No exemplo a seguir usaremos o destruct par para fechar um arquivo, pois ele não será mais usado.
Neste tutorial também usaremos três funções bem interessantes do PHP:
Fopen() abre um arquivo ou URL.
Fwrite() escreve no arquivo que foi aberto pelo fopen().
Fclose() fecha o arquivo que foi aberto pelo fopen().
Vamos a prática: (Caso você não entenda bulhufas deste código veja a parte 1 do nosso tutorial).
<?
class Arquivos
{
var $nome;
var $pasta;
var $link;
//método construtor
function __construct($pasta_a, $nome_a){
$this->nome = $nome_a;
$this->pasta = $pasta_a;
$this->abrirArquivo();
}
function abrirArquivo(){
$arquivo = $this->pasta.$this->nome;
if(@!$this->link = fopen($arquivo, “a”)) {
echo “Erro abrindo arquivo ($arquivo)”;
exit;
}
else{
echo “Arquivo {$this->nome} criado com sucesso! <br />”;
}
}
function escreverNoArquivo($conteudo){
if (@!fwrite($this->link, $conteudo)) {
echo “Erro escrevendo no arquivo ($arquivo)”;
exit;
}
}
//Método destrutor
function __destruct(){
if(@fclose($this->link)){
echo “O arquivo {$this->nome} foi fechado <br />”;
}
}
}
// Exemplo de implementação 1
$arquivo1 = new Arquivos(”c:/”,”teste1.txt”); //método construtor
$arquivo1->escreverNoArquivo(”Olá amigos, mais um exemplo…”);
// Exemplo de implementação 2
$arquivo2 = new Arquivos(”c:/”,”arquivo.sql”); //método construtor
$arquivo2->escreverNoArquivo(”create database meu_blog;”);
?>
Será exibida na tela a seguinte resposta:

Verifique o seu diretório c: e você encontrará os arquivos que acabamos de gerar.

Até a próxima, dúvidas podem ser postadas nos comentários.
Publicado por: cassiotalle em: 20 20UTC Janeiro, 2008
Primeiro vamos entender o conceito de objetos. Tudo o que você vê no mundo real pode ser tratado como objetos – pessoas, animais, plantas, carros, aparelhos eletrônicos etc. Os programas de computador e web sites também podem ser entendidos como objetos.
Os objetos só podem ser formados a partir de um modelo, neste modelo damos todas as características e funções do objeto. Para este modelo damos o nome de classe, que é a principal termologia da orientação a objetos.
Vamos criar uma classe em php:
<?
class nomedaclasse{
}
?>
Geralmente o nome da classe é um substantivo, pois ela representada um objeto, ex: banco de dados, usuário, carro, notícia, comentário, livro.
Todo objeto tem característica e propriedades que são chamadas de atributos do objeto, que no PHP falando de uma forma bem simplista são tratadas como uma variável veja o exemplo:
<?
class Noticia{
var $titulo;
var $texto;
var $data;
}
?>
Ainda assim a nossa a nossa classe não está pronta, faltam os métodos que representa tudo aquilo o que o nosso objeto pode fazer, geralmente para nomeá-las usamos um verbo no gerúndio – mostrar, pegar, limpar, receber, criar – Veja na prática:
<?
class Noticia{
var $titulo;
var $texto;
var $data;
function receberMateria($tituloMateria, $textoMateria){
$this->titulo = $tituloMateria;
$this->texto = $textoMateria;
$this->data = date(”d/m/Y”);
}
}
?>
Observação. Você deve ter percebido que utilizamos a variável $this->, com ela nós podemos acessar as variáveis (atributos do objeto) e os seus métodos. Para acessar, por exemplo, o método que acabamos de criar faríamos isso: $this->recebeMateria(“Titulo da matéria”,”Texto…..”).
Agora que já explicamos os conceitos de métodos, atributos e a variável $this, vamos completar a nossa classe.
<?
class Noticia{
var $titulo;
var $texto;
var $data;
function receberMateria($tituloMateria, $textoMateria){
$this->titulo = $tituloMateria;
$this->texto = $textoMateria;
$this->data = date(”d/m/Y”);
}
function mostrarMateria(){
echo “<h1>{$this->titulo}</h1>”;
echo “Data: {$this->data}”;
echo “<p>{$this->texto}</p>”;
}
}
?>
Agora que a classe está pronta precisamos criar um objeto a partir dela, em outras palavras instanciar o objeto a partir de uma classe, para isso usaremos o comando new . Usar comando new é muito simples, siga esse esquema: $objeto = new NomeDaClasse(); como no exemplo a baixo onde instanciaremos a classe Notica.
<?
class Noticia{
var $titulo;
var $texto;
var $data;
function receberMateria($tituloMateria, $textoMateria){
$this->titulo = $tituloMateria;
$this->texto = $textoMateria;
$this->data = date(”d/m/Y”);
}
function mostrarMateria(){
echo “<h1>{$this->titulo}</h1>”;
echo “Data: {$this->data}”;
echo “<p>{$this->texto}</p>”;
}
}
$noticia_1 = new Noticia();
$noticia_1->receberMateria(”Tutorial de OO”,”Agora estamos aprendendo o conceito de instância”);
$noticia_1->mostrarMateria();
?>
O resultando será este:

Dúvidas podem ser postadas nos comentários, até a próxima.
Publicado por: cassiotalle em: 10 10UTC Janeiro, 2008

Neste rápido vídeo tutorial mostro como configurar o arquivo httpd.conf do Apache para rodar os frameworks PHP que trabalham com URLs inteligentes.
Url normal:
http://meusite/catalogo.php?produto=livro&cat=romance&id=1547
Url inteligente:
Http://meusite/catalogo/livro/romance/1547
Neste video testo Akelos Framework e o CakePHP rodando corretamente depois de configurar o Apache.
Publicado por: cassiotalle em: 10 10UTC Janeiro, 2008
Fiz um vídeo tutorial que mostra como configurar e usar algumas funcionalidades do PHP no prompt de comando.
A execusão do PHP no prompt de comando é muito usada por frameworks como Symfony, Akelos FrameWork e CakePHP.