Ir para conteúdo
Fórum Script Brasil
  • 0

Class


hlegius

Pergunta

Pessoal,

Bem andei de lá, rodei de cá, mexi aki e alí..., mas agora chegou a hora da temida Class huahau...

Por isso gostaria que os veteranos no assunto dessem uma força aí...

vou falar o que sei sobre class, o que li ontem e hoje...

sintaxe básica:

<?

class nome_class{

var $nova // isso não é sempre necessário

function add($var,$var2){

instruções da função;

}

}

$nova = new nome_class; // referenciando a class

$nova->add("valor"); // chamando a função que está dentro da class já referenciada pela variavel $nova

?>

var $nova ( É uma variavel que será usada dentro da classe )

function ( são as funções da dita cuja[Classe] )

$nova = new nome_class; ( Referencia a classe no programa principal )

$nova->nome_da_function (chama uma determinada função da classe referenciada)

ainda têm o $this-> que referencia a class para chamar uma variavel definida na classe tipo

class bife{

var $alcatra;

...

$this->alcatra

...

}

Só o que pega é o seguinte...

Há pouco sobre isso...

No PHPbrasil, quase nem tem, o que tem fala sobre templates...o que acho melhor mexer depois que manjar de class senão embanana tudo na cabeça...

no phpclasses.org o barato é inglês e não tem artigos, dicas sei lá, só scripts prontos e tudo desorganizado(no meu ponto de vista)

imasters também não tem nada no fórum

firemasters idem

e por aí vai...

ah, no manual essa parte tá toda em inglês... pelo menos o que eu abri aki no manual em .html que baixei sim...

daí tentei fazer algo como...

<?

/* Arquivo de class... só para brincar... */

class loja{

var $itens;

function add_item($qtde,$armazenado,$cod){

  if($qtde < $armazenado):

  $this->itens[$cod] = $cod;

  $this->itens[$qtde] = $qtde;

  endif;

return $this->itens[$cod][$qtde];

}

}

$loja = new loja;

$loja->add_item(12,19,1);

print "Seu carro têm:".$loja->itens[$cod][$qtde]." !!";

?>

Sei lá, tava tentando tipo:

ver se tinha armazenado se tivesse o suficiente, add a variavel $itens só que eu vi em algum canto que ela podia haver arrays multidimensionais $this->itens[$cod] no caso...

só que aí não passa os valores...

Nessa outra a minha primeira, peguei uma base nos tutos da vida e saiu algo como:

<?

// arquivo para conectar a base MySQL usando Class

// dados para conectar

$server = "localhost";

$user = "root";

$pass = "";

$base = "duelo_tm";

/*  definindo variaveis */

define("SERVER",$server);

define("USER",$user);

define("PASS",$pass);

define("BASE",$base);

class mysql{

// var cria uma nova variavel para que possa ser usanda dentro da class

// a variavel MYSQL conterá um array que será usado para fazer a conexão com o MySQL

var $MYSQL = array(

  'server' => SERVER,

  'user' => USER,

  'pass' => PASS,

  'base' => BASE

);

// a connect, é a variavel de conexão, ou seja é igual à:

// $connect  = mysql_connect() ... sakou ? huahuahah para mim mesmo...

var $CONNECT;

// uma das funções da classe a função conn()

function conn(){

// Veja a variavel connect aki... ela equivale a mysql_connect().... sakou ?

// o $this-> referecia a class em uso...

if($this->CONNECT = mysql_connect($this->MYSQL['server],$this->MYSQL['user'],$this->MYSQL['pass'])):

  if(mysql_select_db($this->MYSQL['base'],$this->CONNECT)):

  print "Conectado usando uma class";

  else:

  print mysql_error();

  endif;

else:

  print mysql_error();

endif;

} // fim da function conn()

} // fim da class mysql

// para criar a class no programa...

// um nome qualquer, no caso aki.. $conn = seguindo o nome novo new nome_da_class

//$var = new nome_da_classe

$conn = new mysql;

// e aki, uso o nome $conn que é a classe, e chamo a funcion conn que está contida nela...

// isso basta para efetuar a conexão com o MySQL....

$conn->conn();

// prontinho! Dificil ? hauahuahauha com isso você sabe: 1% de class

?>

Essa foi bem simples, faz a conexão com o MySQL...

criei a $MYSQL para os dados da conexão

e $CONNECT para referenciar futuramente a seleção do banco de dados...

pois como podem ver eu fiz:

$this->CONNECT = $this->MYSQL['server'], $this->MYSQL['user']...

esse deu certo como eu disse mais o outro...

então, o que vocês me recomendam?

Essa semana que entra vou ver se num livro que tenho aki, fala sobre class e tentar seguir por ele caso tenha, e também seria bom alguns exemplos ou explicações...

Fico muito grato com vocês!

até... smile.gif

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Certo, tuta documentação vale!

vlw pelo link...

Olha, fiz essa enquanto tava offline...

<?

/* Classe para montar a estrutura de uma loja qualquer... */

// Defino algumas coisas antes...

define("QTDE_ADD",8); // Quantidade comprada

define("QTDE_DEL",2); // quantidade removida

define("ESTOQUE",10); // quantidade em estoque

define("VALOR_PDR",4.50); // valor do produto

class cesta{

var $CESTA; // crio a variavel cesta para armazenar os produtos...

var $TOTAL; // crio a variavel total para calcular o total de cada produto

// função para adicionar produtos

function add($pdr,$qtde,$estoque){

// ele só vende se tiver em estoque

if($estoque >= $qtde){

  $this->CESTA[$pdr] = $qtde;

  $this->CESTA[$qtde] = $pdr; // sem ela eu não poderia exibir o nome do produto!

  return true;

}else{

  print "Despulpe-nos! Não temos a quantidade pedida em estoque!<br />";

  return false;

}

}

// ele só remove se tiver quantidade suficiente na cesta

function remove($pdr,$qtde){

if($this->CESTA[$pdr] >= $qtde){

  $this->CESTA[$pdr] -=  $qtde;

  return true;

}else{

  return false;

}

}

// calcula o total de cada produto

function valorTotalProduto($pdr,$qtde,$valor){

  if(isset($this->CESTA[$pdr])){

  $this->TOTAL[$pdr] = $valor * $qtde;

  }else{

  print "Item inexistente!";

  }

}

}

$cesta = new cesta; // cria o objeto

// adiciona itens a cesta

$cesta->add("Bife",QTDE_ADD,ESTOQUE);

// remove alguns da cesta

$cesta->remove("Bife",QTDE_DEL);

// calcula o total do produto

$cesta->valorTotalProduto("Bife",$cesta->CESTA["Bife"],VALOR_PDR);

// montei uma condicional, para verificar se foi setada a classe CESTA

if(isset($cesta->CESTA)){

// Mostra quantos itens você comprou

print "Você comprou: ".$cesta->CESTA["Bife"]." ".$cesta->CESTA[QTDE_ADD]."(s)<br />";

// Mostra o total a pagar...

print "Ficando um total de R$: ".$cesta->TOTAL["Bife"]." reais!";

}else{

return false;

};

?>

o que acham ?

Bom ruim ? o que pode-se melhorar ?

algo a comentar ?

obrigado novamente!

até... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

Eu acho que, pra quem está começando, está bom... mas eu reparei que você tá utilizando muitas constantes nos seus códigos. E pra coisas que variam... você não precisa definí-las necessariamente pra utilizar com as classes... veja:

define("QTDE_ADD",8); // Quantidade comprada

Essa quantidade pode variar, né? Então, é melhor definir com variáveis, mesmo... se você tiver que definir essas variáveis fora do escopo da classe, tem como você passá-las pra dentro da classe... pensa um pouco. smile.gif

O conceito que acredito que seja o mais legal pra ser entendido é de que as classes são "tipos". Por exemplo, no PHP você tem os tipos "string", "integer", "float", "double", "array"... e os objetos, que nada mais são do que variáveis do "tipo" da classe que eles foram criados. Por exemplo:

$Carrinho = new CarrinhoDeCompras();

$Carrinho é um objeto do "tipo" CarrinhoDeCompras. Não é um array, nem string, nem inteiro... é um "CarrinhoDeCompras". porque eu acho que esse conceito deva ser o mais interessante?? Bom, porque pra programar com classes você tem que pensar nas coisas como objetos... tudo que existe são objetos: objetos do "tipo" Janela, do "tipo" Porta, do "tipo" Carro, etc.. veja ao seu redor. Se você fosse transcrever pra um programa em PHP o seu quarto, por exemplo, você poderia criar uma classe pra cada objeto. E cada classe teria suas propriedades (nome dado às variáveis da classe) e métodos (nome dado às funções da classe).

Por exemplo, se você fosse criar uma classe para objeto "janela". Quais são as propriedades e métodos que você pode dar à ela?

class Janela {

    var $esta_aberta;

    // Este é o construtor. Nada mais é do que uma função com o mesmo  nome da classe.

    // Ela será executada automaticamente quando a classe for instanciada.

    // Normalmente, utiliza-se o construtor pra definir um valor padrão às propriedades da classe

    function Janela() {

        $this->esta_aberta = false;

    }

    function definir_abertura($abertura) {

        $this->abertura = $abertura; // true ou false

    }

}

Viu? Todos os objetos que você olhar ao seu redor, você pode transcrever numa classe com suas propriedades e métodos. Aí você vai criando seu programa com os objetos que você vai utilizar: conexão com database, etc..

Pra você que está começando, o ideal é entender a sintaxe da classe, como utilizar legal o construtor e por aí vai... o conceito de Orientação a Objetos a gente vai entendendo aos poucos, é normal que você tenha que ler muito antes de algo começar a fazer sentido. Só lhe digo uma coisa: não desista... não pare no meio do caminho. Vale a pena você entender como utilizar as classes... smile.gif

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...