Ir para conteúdo

POWERED BY:

Arquivado

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

Gabriel at me

definir Classes conforme os JOINs

Recommended Posts

Pessoal, sou novo em OO com PHP e também sem PHP, ou seja, não conheço muito de Programação Orientada a Objetos.

Decidi começar isto com PHP porque era uma linguagem que eu me virava, portanto foi mais fácil do que Java.

 

Bom vamos lá ao que interessa...

Estou fazendo um sistema para controlar "trickets" ou algo tipo uma "to do list".

Vou minimizar as informações para tentar ficar mais fácil.

 

Duas classes: Ticket e TipoTicket

 

Ticket haverá várioas atributos, dentre eles o tipo do ticket (suporte, assessoria, interno, etc).

No banco de dados, tenho a tabela ticket fazendo join com tipoticket por IDTIPOTICKET.

 

Como faço isto nas classes?

Por exemplo, na classe ticket, os atributos são: idticket, descricao, idtipoticket

Na classe TipoTicket, tenho idtipoticket e descricao_ticket.

 

Para fazer o join no SQL, é traquilo, minha dificuldade está em definir isso na classe.

No Java sei que posso definir uma variável como do tipo TIPOTICKET, já no PHP, elas não são "tipadas", ai fica minha dúvida.

 

Devo colocar o atributo descricao_tipoticket também na classe Ticket, para quando retornar do SQL?

Obrigado pela ajuda de quem ajudar rsrs :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o objeto TipoTicket na classe Ticket, assim como no Java.

 

<?php
class Ticket {
var $TipoTicket;

function __construct($TipoTicket) {
	$this->TipoTicket = $TipoTicket;
}
}
?>

Um exemplo de como usar o __construct:

 

<?php
$TipoTicket1 = new TipoTicket();
$Ticket1 = new Ticket($TipoTicket1);
?>

Daí no construtor do TipoTicket você pega o que tiver que pegar via SQL e já joga nos atributos :)

 

Veja um exemplo completo (ao invés do IF, você usaria a query):

 

<?php
class TipoTicket {
private $tipo;
private $descricao;

function __construct($tipo) {
	if ($tipo == 1) {
		$this->descricao = "Suporte";
	} else {
		$this->descricao = "Assessoria";
	}
	// Aqui você pegaria o valor da query e definiria o atributo
}

function getTipo() {
	return $this->tipo;
}

function getDescricao() {
	return $this->descricao;
}
}

class Ticket {
var $TipoTicket;

function __construct($TipoTicket) {
	$this->TipoTicket = $TipoTicket;
}
}

$TipoTicket1 = new TipoTicket(1);
$Ticket1 = new Ticket($TipoTicket1);
echo $Ticket1->TipoTicket->getDescricao();
?>

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.