Problemas com POO no PHP5

Enviada por Nícollas R. Santos 
Nícollas R. Santos
Problemas com POO no PHP5
16 de October de 2007 às 11:24PM
Estou tendo problemas com a Orientação a Objetos do PHP5.

<?
$Base = new Base();
$Base->getBase();
echo "<br>";
$Base->Complemento->getComplemento();
echo "<br>";
$Base->Extra->getExtra();
echo "<br><br>";
echo "DUMPING Base:<br>"; var_dump($Base);

class Base {
public $ID = "teste";

function __construct() {
$this->Complemento = new Complemento();
$this->Extra = new Extra();
}

function getBase() { echo "Base: ".$this->ID; }

function getVars() { return $this->Complemento->Test; }

}

class Complemento extends Base {
public $Test = "aeww";

function __construct() { }

function getComplemento() { echo "Complemento: ".$this->ID; }

}

class Extra extends Base {
function __construct() { }

function getExtra() {
echo "Extra: ".$this->getVars().'<br><br>';
echo "DUMPING Extra:<br>"; var_dump($this);
}
}
?>

Eu tenho a classe base e duas extensões... eu preciso pegar informações de uma extensão usando a outra.

Alguém poderia me dar uma força?

Nícollas
Regis Diogo
Re: Problemas com POO no PHP5
22 de October de 2007 às 04:55PM
Se você quiser que o objeto base tenha acesso aos objetos extras e complemento não achei legal sua lógica não.
<?php
class Base
{
public $objComplemento;
public $objExtra;

function __construct() {
echo "construindo o obj base<br />";
$this->objComplemento = new Complemento();
$this->objExtra = new Extra();
}
}

class Complemento
{
function __construct() {
echo "construindo o obj complemento<br />";
}

function getComplemento() {
echo "Complemento<br />";
}
}

class Extra
{
function __construct() {
echo "construindo o obj extra<br />";
}

function getExtra() {
echo "Extra<br />";
}
}

$base = new Base();
$base->objComplemento->getComplemento();
$base->objExtra->getExtra();
?>

Assim sua classe base tera as instâncias do objeto Complemento e Extra em sua instância.

Se não for bem isso que tu quer tenta ser mais claro. Explicar mais o problema.

[]'s
Nícollas R. Santos
Re: Problemas com POO no PHP5
22 de October de 2007 às 07:22PM
Muito obrigado por responder.
Depois de muito pesquisar consegui resolver o problema dessa forma:

<?
$Base = new Extra();

class Base {
public $ID = "teste";

function __construct() { }

function getBase() { echo "Base: ".$this->ID; }

function getVars() { return $this->Complemento->Test; }

}

class Complemento extends Base {
public $Test = "aeww";

function __construct() { parent::__construct(); }

function getComplemento() { echo "Complemento: ".$this->ID; }

}

class Extra extends Complemento {
function __construct() { parent::__construct(); }

function getExtra() {
echo "Extra: ".$this->getVars().'<br><br>';
echo "DUMPING Extra:<br>"; var_dump($this);
}
}
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.