+2

PHP5 ORIENTADO A OBJETO - PARTE I

criado por isaac guerra em 24/02/2005 9:59pm
Este Artigo mostra bem claramete a construção de uma classe em php5, esta classe visa construir um componente txt para php5, lembre-se que esta é uma classe básica, que de inicio parece desnecessário construí-la, pois é bem mais fácil faze-lá diretamente em html, todavia esta classe servirá de base para classes mais complexas. Ou seja, não se preocupe com a ultilidade da classe agora e sim no seu funcionamento.

Bem uma classe é algo simples, entenda melhor sobre Orientação a Objeto na minha Pagina

www.isaacguerra.net,

pois aqui ja partiremos para a contrução de uma classe em php5 pulando os conceitos básicos sobre o assunto.

<?php

//Classe CompTxt - escreve texto em html.

// aqui nos começão nossa classe
class compTxt{

    /* Estes são os atributos da classe, notem que são informaçãoes sobre notem que os
       atributos são precedidos da palavra "private", isto significa que esses atributos só
       serão acessados pela própria classe, ou seja, não será possível acessá-los de outro 
       lugar a não ser esta classe, fique calmo voce entenderá melhor mais adiante. */

    private $face;
    private $size;
    private $color;
    private $negrito;
    private $texto;
  

    /* Esta fução é a chamada de contrutor, foi ela é executada quando se estancia esta 
       classe, ou seja podemos realizar várias açoes quando a classe for instaciada, basta 
       colocar os códigos aqui, e pronto. */
  
    public function compTxt()
    {
        $conf = new conf();
    
        $this->face = $conf->corpo_txt_face; 
        $this->size = $conf->corpo_txt_size;
        $this->color = $conf->corpo_txt_color;
        $this->negrito = $conf->corpo_txt_negrito;
    }

    /* Aqui é que resolvemos o problema, de se alcançar os atributos da classe, notem para
       se modificar o conteúdo dos atributos usa-se o método set, e para acessar o 
       conteúdo usa-se o método get, então dessa forma só acessa-se os atributos da classe
       pela própria classe, os métodos ficam disponíveis para todos. */

    public function set_face($Vface)
    {
        $this->face = $Vface;
    }

    public function get_face()
    {
        return $this->face;
    }
  
    public function set_size($Vsize)
    {
        $this->size = $Vsize;
    }

    public function get_size() 
    {
        return $this->size;
    }
  
    public function set_color($Vcolor)
    {
        $this->color = $Vcolor;
    }

    public function get_color() 
    {
        return $this->color;
    }
  
    public function set_negrito($Vnegrito)
    {
        $this->negrito = $Vnegrito;
    }
  
    public function get_negrito(){
        return $this->negrito;
    }
  
    public function set_texto($Vtexto)
    {
        $this->texto = $Vtexto;
    }

    public function get_texto()
    {
        return $this->texto;
    }

    /* Este método é que realmente cria o html que nós queremos, e é muito simples mesmo, 
       notem que o texto será formatado na criação. */
  
    public function cria()
    {
        echo "<font face='$this->face' size='$this->size' color='$this->color'>";
        if ($this->negrito == "true" or $this->negrito == "True") {
            echo ""; 
        }
        //escreve o texto
        echo $this->texto;
        if ($this->negrito) {
            echo ""; 
        }
        echo "</font>";
    }
}
?>

Pronto nossa classe esta pronta, agora nós criaremos uma instancia desta classe, ou seja um objeto.

<?php 
// instanciaremos nosso objeto
$txt = new compTxt();

// vamos setar os atributos do objeto
$txt->set_face("verdana");
$txt->set_size("2");
$txt->set_color("Blue");
$txt->set_negrito(true);
$txt->set_face("Minha primeira classe basica em php5");

// agora vamos criar o texto
$txt->cria();
?>

Está pronto, notem que foi bem mais trabalhoso do que criar o html, mas notem que nosso objeto nos permitiu construir um texto em html, sem escrever nada em html e nem intercalar codigo html com php, ficou apenas o código em php, mais para frente essa classe será muito importante para criação de classe bem mais complexas.

Bem continuaremos falando sobre isso depois, quando acabarmos esse estudo voce será capaz de construir paginas muito complexar com o uso de Orientação a Objeto, ficando assim muito simples e rápido, acredite!

Falou, galera!


Isaac Guerra
www.isaacguerra.net

Comentários:

Mostrando 1 - 10 de 13 comentários
Olá, boa tarde,

Compreendo que o seu objectivo era falar com Programação orientada a objectos e que a classe não tem importância. mas o HTML que você gera na classe já é obsoleto.
Seria bom se adapta-se a classe para gerar html conforme os webstandards.
Um abraço de Portugal
César Oliveira
http://www.profissionalweb.net/sondagens/
30/09/2008 8:23am (~15 anos atrás)

Nem precisa do método construtor!!!
06/06/2008 9:36am (~16 anos atrás)

Olá pessoal, primeiro post meu aqui no php brasil.

Seguinte, vi nos comentários dos colegas várias críticas. Certo, o kra não mandou mto bem para um iniciante como eu, mas akbou me ajudando. :S Como é, ajudando??? É sim. Peguei a classe que ele criou é fiz denovo do meu jeito, sem saber direito como trabalhar com classe. Vou postar o código todo, pq assim como eu terá vários iniciantes no assunto.

[CODE]

/* Classe criada por Isaac Guerra é adaptado por Tiago Braga */

<?php

class compTxt{

private $face;
private $size;
private $color;
private $negrito;
private $texto;


public function compTxt($fc="", $sz=0, $co="", $ng = "", $txt=""){
//$conf = new conf();

$this->set_face($fc);
$this->set_size($sz);
$this->set_color($co);
$this->set_negrito($ng);
$this->set_negrito($txt);
}

public function set_face($Vface){
$this->face = $Vface;
}

public function get_face(){
return $this->face;
}

public function set_size($Vsize){
$this->size = $Vsize;
}

public function get_size(){
return $this->size;
}

public function set_color($Vcolor){
$this->color = $Vcolor;
}

public function get_color(){
return $this->color;
}

public function set_negrito($Vnegrito){
$this->negrito = $Vnegrito;
}

public function get_negrito(){
return $this->negrito;
}

public function set_texto($Vtexto){
$this->texto = $Vtexto;
}

public function get_texto(){
return $this->texto;
}

public function cria(){
return "<font face=\"$this->get_face\" size=\"$this->get_size\" color=\"$this->get_color\">
<span style=\"font-weight:".$this->get_negrito()."\">".$this->get_texto()."</span>
</font>";
}
}

// instanciaremos nosso objeto
$txt = new compTxt();

// vamos setar os atributos do objeto
$txt->set_face("verdana");
$txt->set_size("2");
$txt->set_color("Red");
$txt->set_negrito("bold");
$txt->set_texto("Minha primeira classe basica em php5");

// agora vamos criar o texto
echo $txt->cria();
?>

[/CODE]


Bom, tbm vi alguns falando que o Isaac não falou sobre novidades que exitem no PHP5 e isso é um agravante, pois não teria pq mudar para o PHP5 se não mostrar diferenças (Pensando aqui denovo em iniciantes).

Deixo aqui minha opinião...

Até
06/06/2008 7:27am (~16 anos atrás)

lucas al disse:
muito obrigado por postar o artigo, acredito que muitas das pessoas que te criticaram não faz nada pra ajudar os mais leigos. Muitos tem medo que surjam novos programadores em potencial com artigos para leigos. Eu comecei no PHP há um ano e ainda tenho dificuldade com a POO, mudou bastante o método de programação do PHP4 para o PHP5 e muita gente ainda está tendo dificuldade de aprimorar na POO, então seu artigo é ótimo para iniciantes como eu.
30/05/2008 6:19pm (~16 anos atrás)

Achei muito bom o artigo do Issac, apesar das críticas de algumas pessoas. Como ele disse a artigo foi destinado a pessoas leigas e ñ para quem já conhece a oop, ñ interessa se o PHP4 faz ou deixa de fazer!!!! A ideia foi mostrar o basico sobre oop.

Parabens Issac e continue postando seus artigos Kra, ñ dê ouvido para as criticas, um abraco !!!

Contras.: Kd a classe 'conf'??? o q ela Faz ??????

if ($this->negrito == "true" or $this->negrito == "True") // aqui foi tratado o True ou true

if ($this->negrito) // aqui não foi
16/10/2006 8:26am (~17 anos atrás)

Diego Hellas disse:
um comentário que acho legal é aki..

public function cria()
{
echo "<font face='$this->face' size='$this->size' color='$this->color'>";
if ($this->negrito == "true" or $this->negrito == "True") {
echo "";
}
//escreve o texto
echo $this->texto;
if ($this->negrito) {
echo "
";
}
echo "</font>";
}


acho que isso poderia ser melhro usado assim:

echo "<font face='$this->get_face()' size='$this->size' color='$this->color'>";

seria legal usar o get_face() pra retornar o valor, senão acho que não tem muito sentido fazer a função get_face() não acha?
01/09/2005 6:55pm (~18 anos atrás)

Tudo bem este artigo tá legal! Abordando OOP, mas faltou certas explicações! E outra coisa, de onde saiu a classe "conf"?
09/07/2005 4:45pm (~19 anos atrás)

isaac guerra disse:
galera eu escrevi esse artigo para pessoas leigas, sem nenhum entendimento sobre oo e escolhi criar classes de criação de html para se ilustrativo, todavia, agradeço as observaçoes, que eu escria um artigo sobre oo e disponibilizei no meu site www.isaacguerra.net, qualquer duvida sobre o assunto, em que eu possa ajudar estou disponivel, valeu galeraaaaa
01/03/2005 4:18pm (~19 anos atrás)

Meu na humildade sem desmerecer o seu artigo mas vc quer saber o que é PHP5 de verdade??? Acesse (http://www.phpbrasil.com/articles/article.php/id/833) rsrs
26/02/2005 6:33pm (~19 anos atrás)

melhor explicando:

de

"a unica coisa nova é o modificador "private" que no php 4 era var $variavel, e voce nao disse ao pessoal.... "

para

"a unica coisa nova NESTA CLASSE é o modificador "private" que no php 4 era var $variavel, e voce nao disse ao pessoal.... "

:)
25/02/2005 3:44pm (~19 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)