Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Perfect Lion

Classes Parte 2

Recommended Posts

O exemplo que o Fabyo deu sobre Interfaces é muito bom.Mesmo assim, gostaria que o recurso de Herança Múltipla fosse implementado nas próximas versões do PHP. Afinal Herança multipla é um ítem de programação orientada a objetos. E pra quem acha que eu estou exagerando, o C, C++ e Python possuem esse recurso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo visto essa materia não ira ter uma terceira parte né, mas parabéns pelo intuito de ajudar e bem!!! E q eu estava aguardando uns meses agora resolvi perguntar!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou pensando em criar o 3° isso ai ainda é basico e o 3° provavelmente vai continuar no modo basico ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo você poderia criar um basico mais com um interação com formularios e mysql, seria legal! Tipo cadastro de funcionario nome e profissao e mais qualquer coisa ou produtos nome e quant, depois num quarto tuto ensina editar e num quinto exibir. E poderia fazer isso utilizando a class BD do fabyo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, iniciei tem pouco tempo no PHP, ate que o primeiro tuto de classe eu peguei mas ou menos, agora essse segundo aqui ta dificil pacas, eu entender legal como a classe trabalha, nao qeuro so copior e colar, gostaria de entender melhor e oque to fazendo, ja tava dificl apareceu ai agora PRIVATE, PUBLIC e sei mas oque ta dificiiiil, gostaria que a galera ai postasse algum exemplo mas seimples de como usar as classes pra depois eu passar pra mas dificil e assim por diante, valew ai LION os tudo seu sao muito locos, bons mesmo, o lance ai de nao pegar legal e comigo mesmo que to meio garrado no assunto mas se poder me da uma força ai em exmplos mas simples de classe vai ser massa,. valrw ate mais....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra esquece esse negocio de private public por enquanto .... isso é para o php5 e para você entender isso primeiro você tem que entender o simples como funciona o negocio... então veja um simples aqui..

 

class foo{  var $nome;  function setNome($nome){	return  (!empty($nome))? $this->nome = $nome : false;  }}$foo = new foo;$foo->setNome("Perfect Lion") or die("O nome não pode ser vazio");echo $foo->nome;// Imprime Perfect Lion

Viu uma bem simples.. onde eu seto um valor para uma propriedade dentro da classe depois chamo essa variavel e printo ela na tela para ver se funciono ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Perfect Lion disse:

Kra esquece esse negocio de private public por enquanto .... isso é para o php5 e para você entender isso primeiro você tem que entender o simples como funciona o negocio... então veja um simples aqui..

Uhnmmm ... acho interessante ja aprender com os conceitos corretos, começar do certo, ja que está começando do 0 (zero).

Se fosse algo complicado Erick eu até concordaria contigo, mas a visibilidade não tem segredo, public, protected e private. Existem vários artigos na net a respeito ...

Não estou querendo causar intrigas, longe de mim ... mas é só minha opnião, eu acho que o conceito de encapsulamento é legal para quem está começando e não deve ser irrelevado !

 

Sobre o tutorial :

Sim, gostei, achei legal para quem esta iniciando, mas programação em OO é algo bem relativo ainda, mesmo com todos os patterns existentes.

Alguns métodos das suas classes eu não achei que estavam de acordo, mas você mesmo deixou bem especificado que é um tuto para iniciantes !

 

  magician disse:

Boas antes de mais parebens pelo tutorial ta muito bom :D

 

A questao é a seguinte, ao invés de criar a função logar, não seria mais simples criar um construtor que iria fazer o que faz a função logar ?? assim ao invés de fazer $logar = new login();

fazia-se

$logar = new login("erick","12356");

assim era criado objecto com a info do user.

 

Talvez seja confuso mas é que ainda nao tou bem abituado ás class ...

Uhnmm ... eu ja não concordo eu acho que isso é um método da classe sessão, e esta classe você mantém na session do php. Sacou !?

Só se você entender essa classe login, como uma classe sessão ... ai sim, a idéia é válida !

 

 

 

  Fabyo disse:

interfaces são como "contratos' que definem um padrao pra uma classe

toda classe que implementa a interface tem a obrigacao (por causa do "contrato") de implementar os metodos que ela pede

 

por exemplo

 

Interface "ICirurgiao" define os métodos que são necessários para que um objeto possa ser um "Cirurgiao"

 

public interface ICirurgiao {	void Operar();}
a interface não define o corpo ...
Boa explicação Fabyo!!

 

Boa iniciativa Erick!!

 

Sobre herança multipla Edivaldo são poucas as linguagens que aceitam creio eu, e o php é uma delas. Em JAVA existe uma parada chamada polimorfismo, aonde você define o objeto de um tipo e instancia de outro .... punks neah ... da uma olhada depois ..

Para quem não conhece, um exemplo prático de herança multipla:

Algo bem surreal mesmo ó:

Temos um objeto onibus e temos um objeto nave e queremos criar um onibus espacial que herde todas as caracteristicas do objeto onibus e do objeto nave espacial ... sacou !? Na prática seria algo como :

class OnibusEspacial extends Onibus, Nave{}
mas isso NON ECXIST ehehehe

 

Eu ja vi algumas adaptações técnicas (gambiarras :D) para usar herança multiplas com o PHP, mas não achei muito viável não ...

E outra, é raro em programação WEB você ter um objeto filho de duas classes, pelo menos em PHP foram poucas as vezes que me deparei com tal situação.

Oque eu fiz, foi modelar novamente minhas classes

Compartilhar este post


Link para o post
Compartilhar em outros sites

é como falei heranças multiplas só exitem no C e porque la precisa, nao tem necessidade em outras linguagens. o PHP quanto a oop esta engatinhando ainda, mas da pra fazer muita coisa ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Void : -> opa concordo plenamente com tingo filhote.... mais eu mesmo quando comecei com OOP eu fiquei perdido nas visibilidades ai depois que eu peguei as manhas essa de visibilidade foi facil pacas... aprendi na hora...Quanto a classe login bem ela não é de sessão e eu não criei um de sessão pois só criei mesmo para abrir a mete do pessoal que está aprendendo...Pois se fosse eu iria fazer essa parte ai recuperar session ou cookies ^^ ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Perfect Lion,Estou lendo os 3 post, pois preciso aprender classes.Só que fiz tudo direitinh e está memdando o seguinte erro:###################################Fatal error: Call to undefined method login::DBseleciona() in /www/dominios/vianova/login_class.php on line 15O que pode ser?Meus codigos estão assim:config.php

<?php	################################	##### Info conexao DB ##########	################################	define("DB_HOST", "localhost");	define("DB_USUARIO", "usuario_com_acesso_ao_bd");	define("DB_SENHA", "minha_senha");			################################	##### Conectando com o DB ######	################################		$db_conect = mysql_connect(DB_HOST, DB_USUARIO, DB_SENHA);	define("DB_CONECT", $db_conect);			################################	##### Criando a classe DB ######	################################	class DB{				###função para fecha o banco de dados		function DBfecha(){			mysql_close(DB_CONECT);					}				###seleciona DB		function DBseleciona($db){			return mysql_select_db($db, DB_CONECT);		}	}	?>

login_class.php

<?php	require_once("config.php");		############################	###### Criando a classe ####	############################	class login {				private $return_query;		protected $total_query;				### Função logar		public function logar($nome, $senha){			$this->DBseleciona("nome_do_bd");			$this->return_query = mysql_query("SELECT * FROM user WHERE upper(nome) = '".strtoupper($nome)."' and senha = md5('$senha')")or die(mysql_error());			$this->total_query = mysql_numrows($this->return_query);			return ($this->total_query > 0)? true:false;					}	}?>

login.php

<?php	require_once("login_class.php");		$logar = new login();	echo $logar->logar("tomelin", "minha_senha");	?>

O que pode estar errado.Agradeço quem puder me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Axho que você esqueceu de extender a ckasse DB. no login

 

class login extends DB{ ... }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lion,

 

Tenho que adminitir: sua sequência de tutoriais é muito boa, eles são ótimos, me ensinaram muito na programação PHP. O que na verdade ainda estou aprendendo. Mas parabéns, são realmente ótimos e continue disseminando conhecimento, isso faz de você um CAMPEÃO.

 

Só uma dica, procura passar o corretor ortográfico antes, pois, são erros que não atrapalham o entendimento da matéria, mas que as tornam "feias" (*risos*). Espero que leve isso como dica construtiva http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif .

 

Fico no aguardo de suas próximas matérias.

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.