Cassiotalle’s Weblog

PHP 5 OOP (Parte 2) Construtoes, Destrutores e manipulação de TXT

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:

tuto2_1.jpg

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

 tuto2_2.jpg

Até a próxima, dúvidas podem ser postadas nos comentários.

Deixe uma resposta

Tags

 

Janeiro 2008
S T Q Q S S D
     
 123456
78910111213
14151617181920
21222324252627
28293031