Jump to content


Photo

Tutorial Oop


  • Faça o login para participar
114 replies to this topic

#31 rodurma

rodurma

    Normal

  • Usuários
  • 64 posts
  • Sexo:Não informado

Posted 12/01/2005, 12:48

eita, também nunca vi isso não!

segundo o php4 não são permitidas classes encadeadas....

da uma olhada aqui
http://br2.php.net/m....oop.newref.php
[]`s

#32 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 13/01/2005, 12:09

pessoal

eu tava lendo o tutorial do Xplayer

aew comecei a brincar com OO em 10 minutinhos oia oq eu consegui desenvolver em OO

da um aolhada

PHP

<?
class henrique {
var
$nome = "Henrique";
var
$sobrenome = "ratts";
var
$x = "nome";
var
$y = "sobrenome";
}
$meunome = new henrique();
echo
'<b>';
echo
$meunome -> x;
echo
':  ';
echo
'</b>';
echo
$meunome -> nome;
echo
'<br>';
echo
'<b>';
echo
$meunome -> y;
echo
':  ';
echo
'</b>';
echo
$meunome -> sobrenome;
?>


esse script no modo clasico fikaria assim

PHP

<?
$nome
= "Henrique";
$sobrenome = "ratts";
$x = "nome";
$y = "sobrenome";
echo
"<b>$x : </b>$nome <br> <b>$y : </b>$sobrenome";
?>

Bem simples neh mais pelo menos é em OO depois eu do mai suma estudada vo me dedicar nessa parada de OO :rolleyes:

o resultado dos dois e o mesmo so a diferencia que codigo fonte do OO foi maior que o codigo fonte do classico
quem quiser ver o resultado desse script oia aqui

http://cristian.inte...desig/teste.php




T+ (y)

#33 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 13/01/2005, 12:17

Fica maior não... Digamos que o "header" do OO é maior. Para algo pequeno e simples, sim, ele fica maior, mas imagine um sistema maior com várias opções, talvez com suporte a temas e skins, ... A maneira estruturada poderia ficar o dobro facilmente (y)
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#34 rodurma

rodurma

    Normal

  • Usuários
  • 64 posts
  • Sexo:Não informado

Posted 15/01/2005, 05:33

OPa acho que posso ajudar um pouco.

na class adicionei a seguinte function:
function SubTotal($item){
	return $this->Quantidade[$item]*$this->Preco[$item];
  }

para mostra na tela o subtotal de cada produto.
Ex:
echo $SESSION['MinhaCesta']->SubTotal('AF 1520');

Agora uma dúvida, Como eu pego o código do produto (por exemplo o AF 1520) ???

[]'s

#35 H3NR!QU3

H3NR!QU3

    Progamador PHP!

  • Usuários
  • 1032 posts
  • Sexo:Não informado
  • Localidade:cuiaba MT
  • Interesses:programação... PHP,JAVA,C++ ,c,c# asp, asp.net e delph

Posted 15/01/2005, 11:19

aew galera o php.net fala mto bem sobre o OOP oia um super tutorial

sobre oop

http://br.php.net/ma...anguage.oop.php

#36 Guilherme Blanco

Guilherme Blanco

    Loading...

  • Conselheiros
  • 891 posts
  • Sexo:Masculino
  • Localidade:São Carlos - SP/Brasil
  • Interesses:Programação Web e minha namorada (Maria Camila).

Posted 15/01/2005, 14:33

Bom tutorial...

Eu até pensaria em deixar minhas classes aqui pra você verem.... =)

[]s,
<script language="WebFórum">
// Dados:
Nome("Guilherme Blanco");
Localidade("São Carlos - SP/Brasil");
Cargo("Manutenção");
</script>

#37 rodurma

rodurma

    Normal

  • Usuários
  • 64 posts
  • Sexo:Não informado

Posted 15/01/2005, 16:56

Bom tutorial...

Eu até pensaria em deixar minhas classes aqui pra você verem.... =)

[]s,

Manda ae :)

E se alguem ainda quiser responder a minha pergunta hehe:

Agora uma dúvida, Como eu pego o código do produto (por exemplo o AF 1520) pra mostra na tela com um echo ???


[]'s

#38 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 16/01/2005, 17:51

Não teria como buscar um código de produto, talvez pela sua quantidade em estoque, pois no tutorial somente grava o código e a quantidade. Claro que você pode fazer uma outra forma de armazenamento onde possa recuperar os dados de cada produto, mas digamos, que iria ter uma "chave" para a procura.
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#39 rodurma

rodurma

    Normal

  • Usuários
  • 64 posts
  • Sexo:Não informado

Posted 16/01/2005, 19:35

Não teria como buscar um código de produto, talvez pela sua quantidade em estoque, pois no tutorial somente grava o código e a quantidade. Claro que você pode fazer uma outra forma de armazenamento onde possa recuperar os dados de cada produto, mas digamos, que iria ter uma "chave" para a procura.

Ae balala,
Consegui aqui fazer listar o nome o o subtotal (criei uma nova function que calcula o subtotal), só que tive que tirar a parte que da o desconto.

O script ficou assim.

PHP

<?php
class Cesta {
// var $Desconto;
 var $Preco      = array();
 var $Quantidade = array();

 //function Cesta($desconto) {
 //  $this -> Desconto = $desconto;
 //  }

 function AdicionarItem($item, $preco, $quantidade) {
   if( isset($this -> Preco[$item]) ) {
     $this -> Quantidade[$item] += $quantidade;
     } else {
       $this -> Preco[$item] = $preco;
       $this -> Quantidade[$item] = $quantidade;
       }
   }

 function RemoverItem($item, $quantidade) {
   if ( isset( $this -> Quantidade[$item] ) ) {
     if ( $this -> Quantidade[$item] >= $quantidade ) {
       $this -> Quantidade[$item] -= $quantidade;
       } else {
         $this -> Quantidade[$item] = 0;
         }
       } else {
         return false;
         }
   }
 function SubTotal($item){
return
$this->Quantidade[$item]*$this->Preco[$item];
 }
 
 function TotalCompras
() {
   $soma = 0;
   while ( list($cod, $valor) = each($this -> Quantidade) ) {
     $soma += $this -> Quantidade[$cod] * $this -> Preco[$cod];
     }
   $soma -= $soma * ($this -> Desconto / 100);
   return $soma;
   }

 }

session_start();

$_SESSION['MinhaCesta'] = new Cesta();
$_SESSION['MinhaCesta'] -> AdicionarItem("AF 1520", 17.90, 15);
$_SESSION['MinhaCesta'] -> AdicionarItem("AE 1735", 21.00, 5);
$_SESSION['MinhaCesta'] -> AdicionarItem("AZ 4242", 15.50, 7);
$_SESSION['MinhaCesta'] -> AdicionarItem("AW 2129", 1.99, 85);
$_SESSION['MinhaCesta'] -> AdicionarItem("AL 3189", 0.50, 2584);

echo
"Total da compra : ".$_SESSION['MinhaCesta'] -> TotalCompras();
echo
"<br>";

$i = 0;
foreach (
$_SESSION['MinhaCesta'] as $v1) {

  foreach ($v1 as $v2 => $k) {
 
 
if ($i < count($v1)){
  echo "Produto : ".$v2." Tem subtotal : ".$_SESSION['MinhaCesta']->SubTotal($v2)."<br>";
  }
  $i++;
  }
}


?>


Repare que comentei umas coisas no código pra poder funcionar corretamente.

[]'s

Edição feita por: rodurma, 16/01/2005, 19:39.


#40 gregorytg

gregorytg

    Mestre

  • Usuários
  • 632 posts
  • Sexo:Não informado

Posted 01/02/2005, 01:17

Uma perguntinha.

Antes de tudo show isso de OO.

Mais voltando a pergunta, eu vi vocês falando tanto de REUTILIZAR os codigos sem precisar refaze-los.

Como seria isso?

Ou eu entendi mal?

Abraços

H²o¹ Linda a sua frase.

Se hulmides quando quiseres adquirir a sabedoria, se mais ainda quando a tiver adquirido.
"Porque o Senhor será a tua confiança, e guardará os teus pés de serem presos". \o/

#41 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 30/04/2005, 00:07

Po cheguei a agora e so agora fui ler esse tal de OOP nem nunca imaginava o que era mas ja li e nao entendi muito nao acho que o BALALA disse que se alguem quisesse ver algo parecido baixasse uma versao de um forum no ano passado eu tava olhando como eram feitos essas paradas rapaz eu nao entendi nada do que tava la é um monte de linha em GREGO pra mim(e eu so fala um pokin de ingleis cuais = eu escrevo em portugueis, uyahuayha) mas depois eu vi o post do HENRIQUE_CBA(como é que se mudou seu nick? akele "3") e vi que o codigo que ele colocou la em OOP ficou organizadinho e talz mas nao entendi quase nada(tambem sou newbee) no classico ficou menor e entendi tudo...

Contudo...

Qual é realmente a funcionalidade do tal OOP?
ele serve so pra organizar melhor?
ele da alguma funcionalidade ou potencia no PHP?

Onde eu acho mais sobre isso? do inicio de preferencia?

Eita ja escrivi muito qais um jornal

Falopa!

#42 Balala

Balala

    What you want for yourself?

  • Ex-Admins
  • 3357 posts
  • Sexo:Não informado
  • Localidade:Jaraguá do Sul - SC
  • Interesses:http://forum.wmonline.com.br/index.php?showtopic=5792

Posted 30/04/2005, 00:26

WOOOOOOHOOOOOOOOOO. Chuva de perguntas =)

1. Qual é realmente a funcionalidade do tal OOP?
Digamos que a maior diferença entre Progração Orienta à Estruturada é a reutilização do código. Para algo "pequeno", um cadastro aqui, um formulário ali, você não veria utilidade em OOP, e até acharia ridículo fazer 50 linhas de OOP ao invez de 20 da Programação Estruturada.

Mas imagine algo um pouco maior. Um comércio eletrônico já teria um porte suficiente. O que seria melhor, para cada produto que o usuário fosse adicionando em seu carrinho de compras, chamar um mysql_query(), alterar a sessão e tudo mais, ou somente passar um parâmetro para uma classe?

Seria nesses projetos com maior utilização de um mesmo código, que verá a utilidade do OOP.

2. Ele serve so pra organizar melhor?
Sim, e não. Como respondi a primeira, realmente ele deixa o código mais fácil para qualquer outro programador. Será mais fácil para alguém prestar manutenção em seu sistema se ele tiver que abrir um arquivo, classe.php, e alterar os dados todos ali ou procurar em cada arquivo no site inteiro onde deve ser alterado?

E independente do método de programação, não fazendo as formatações para visualização, como identação e tudo mais, qualquer método poderia ser de péssima organização.

3. Ele da alguma funcionalidade ou potencia no PHP?
Não, de maneira alguma. Qualquer coisa, por mais que você diga "Fiz isso com uma classe em OOP, sem chance de fazer igual na programação estruturada", com certeza, tem como fazer. Talvez com mais ou menos trabalho, mas as duas chegam lá.

4. Onde eu acho mais sobre isso? do inicio de preferencia?
No próprio manual do PHP há uma boa abrangência sobre OOP.

http://br2.php.net/m...anguage.oop.php

Pronto, jornal finalizado =)
Balala - Admin Geral Webfórum - Retired
Twitter
Stop Spreading Lies!
Posted Image

#43 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 30/04/2005, 13:36

hehehe, ae BALALA este forum so tem a crescer por causa de usuarios como VOCE, LUCASKOLLETE, HENRIQUE_CBA, KLAUS, PROG(esse ta sumido?) e o THIAGO_RSL(tambem ta sumidao) desculpa ae se nao sitei alguem mais e que eu so tenho sido respondido por estes caras ae, voces sempre explicam tudo direitinho de forma que ate eu que sou PHP.ini(uyhuhau) entendo e aprendo facinho...

VALEW aew


Falopa!

#44 ricardoesteves

ricardoesteves

    disabled

  • Usuários
  • 141 posts
  • Sexo:Não informado
  • Localidade:Florianópolis - SC

Posted 11/05/2005, 16:43

Estou fazendo uma loja, acredito que seja o projeto mas pesado que eu esteja fazendo sozinho.

Temos alguns sistemas aqui, desenvolvidos pelo antigo programador(ele mexe com linux desde os 12 anos ....) e tudo em POO, eu dei uma olhada, estudei os codigos, mas não encontrei vantagens ... alguns códigos de 200 linhas eu refiz em 40 com POE, por isso nunca me aprofundei.

Mas hj com a loja, estou pensando em utilizar POO.

Estou usando sessões, não estou utilizando cookies por não achar necesario o armazenamento os dados após o cliente sair do site, por isso optei pela sessão.

Mas o Balala citou "Mas imagine algo um pouco maior. Um comércio eletrônico já teria um porte suficiente. O que seria melhor, para cada produto que o usuário fosse adicionando em seu carrinho de compras, chamar um mysql_query(), alterar a sessão e tudo mais, ou somente passar um parâmetro para uma classe?"

Eu não consigo visualizar como uma classe pode armazenar dados, como uma sessão, durante a navegação pelo site.

Gostaria de entender este ponto.
--------------------------------------
E se Jesus estiver certo?

#45 Guilherme Blanco

Guilherme Blanco

    Loading...

  • Conselheiros
  • 891 posts
  • Sexo:Masculino
  • Localidade:São Carlos - SP/Brasil
  • Interesses:Programação Web e minha namorada (Maria Camila).

Posted 12/05/2005, 00:10

Se tiverem oportunidade, darei uma palestra sobre Orientação a Objetos, Padrões de Projeto e PHP5 OO dia 18 de junho.

Acompanhem o tópico: http://forum.wmonlin...howtopic=115993


Manterei-os informados naquele post.


[]s,
<script language="WebFórum">
// Dados:
Nome("Guilherme Blanco");
Localidade("São Carlos - SP/Brasil");
Cargo("Manutenção");
</script>




1 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)


    Bing (1)
IPB Skin By Virteq