Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera,
Estou estudando agora sobre orientação a objetos e estou com uma duvida, vou montar uma classe para gera html, certo, tenho uma superclasse que é responsável por criar estrutura do html em si, e vou ter varias outras se extendendo a partir dela para complementa-la. Estou fazendo dessa maneira, porém acho que está errada (porem esta funcionando):
class HtmlTags {
public $conteudo;
public function setTexto($valor) {
$this->texto = $valor;
}
public function getTexto() {
return $this->texto;
}
public function geraConteudo() {
$this->conteudo = "<h1>Titulo</h1>";
$this->conteudo .= $this->getTexto();
return $this->conteudo;
}
}
class HtmlEstrutura extends HtmlTags{
public $html;
public function corpo() {
$this->html = "<html>\n";
$this->html .= "<head>\n";
$this->html .= "<title>Teste de Classe</title>\n";
$this->html .= "</head>\n";
$this->html .= "<body>\n";
$this->html .= $this->geraConteudo() . "\n";
$this->html .= "</body>\n";
$this->html .= "</html>\n";
return $this->html;
}
}
class Html extends HtmlEstrutura {
public $estrutura;
public function exibe() {
return $this->corpo();
}
}
$html = new Html();
$html->setTexto("<p>Construindo (X)HTML dinamicamente!</b></p>");
echo $html->exibe();Como poderia fazer isso sem precisar jogar essas futuras classes dentro da minha classe HtmlTags? O jeito seria colocando essas novas sempre no topo do script e extende-la ao longo das classes?
Valeu!
Exato, li em alguns artigos sobre isso mesmo, mas existe outra forma então de contornar isso, ou o único jeito é ir colocando as funções na classe HtmlTags?
ja pensou em usar essas funcoes separadas do q em classes...?
Sim ja pensei, porem como estou estudando orientação a objetos, pensei em colocar o estudo em prática, mas acho que já sei o que fazer, vou colocar as funções especiais dentro da HtmlTags, vai ficar gigante a classe porem vai ficar quase do jeito que quero, mesmo assim valeu pela ajuda!
Comece fazendo um esboço em uma folha de papel, aí você vai imaginando como seria esse mundo.
Por exemplo, você tem um objeto formulário, e dentro deste, os objetos inputs, textareas, etc, tendo cada um deste um objeto label associado. O objeto formulário possui algumas propriedades como action, name, id, method, etc.
Isso deve ajudar na sua lógica.
at onde eu sei, no php nao eh permitido heranças multiplas....so podendo criar duas classes extendidas....