Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal eu estou estudando PHP-OO por um livro (PHP Programando com Orientação a Objetos), em um capitulo ele faz demonstrações de como "gerar" HTML e CSS com php-OO. por exemplo: TElement.class.php <?php
/** classe TElement classe para abstração de tags HTML */
class TElement
{ private $name. // nome da TAG private $properties. // propriedades da TAG
protected $children. /** * método construtor * instancia uma tag html * @param $name = nome da tag */ public function __construct($name) { // define o nome do elemento $this->name = $name. } /** * método __set() * intercepta as atribuições à propriedades do objeto * @param $name = nome da propriedade * @param $value = valor */ public function __set($name, $value) { // armazena os valores atribuídos // ao array properties $this->properties[$name] = $value. } /** * método add() * adiciona um elemento filho * @param $child = objeto filho */ public function add($child) { $this->children[] = $child. } /** * método open() * exibe a tag de abertura na tela */ private function open() { // exibe a tag de abertura echo "<{$this->name}". if ($this->properties) { // percorre as propriedades foreach ($this->properties as $name=>$value) { echo " {$name}=\"{$value}\"". } } echo '>'. } /** * método show() * exibe a tag na tela, juntamente com seu conteúdo */ public function show() { // abre a tag $this->open(). echo "\n". // se possui conteúdo if ($this->children) { // percorre todos objetos filhos foreach ($this->children as $child) { // se for objeto if (is_object($child)) { $child->show(). } else if ((is_string($child)) or (is_numeric($child))) { // se for texto echo $child. } } // fecha a tag $this->close(). } } /** * método close() * Fecha uma tag HTML */ private function close() { echo "</{$this->name}>\n". }
}?> TStyle.class.php <?php public function __construct($name) { // atribui o nome do estilo $this->name = $name. } /** * método __set() * intercepta as atribuições à propriedades do objeto * @param $name = nome da propriedade * @param $value = valor */ public function __set($name, $value) { // substitui o "_" por "-" no nome da propriedade $name = str_replace('_', '-', $name). // armazena os valores atribuídos ao array properties $this->properties[$name] = $value. } /** * método show() * exibe a tag na tela */ public function show() { // verifica se este estilo já foi carregado if (!isset(self::$loaded[$this->name])) { echo "<style type='text/css' media='screen'>\n". // exibe a abertura do estilo echo ".{$this->name}\n". echo "{\n". if ($this->properties) { // percorre as propriedades foreach ($this->properties as $name=>$value) { echo "\t {$name}: {$value}. \n". } } echo "}\n". echo "</style>\n". // marca o estilo como já carregado self::$loaded[$this->name] = TRUE. } }
}?> index.php <?phpinclude_once 'TElement.class.php'. include_once 'TStyle.class.php'. // cria um estilo$style = new TStyle('estilo_texto'). $style->color = '#FF0000'. $style->font_family = 'Verdana'. $style->font_size = '20pt'. $style->font_weight= 'bold'. $style->show(). // instancia um parágrafo$texto= new TElement('p'). $texto->align = 'center'. $texto->add('Sport Club Internacional'). // define o estilo do parágrafo$texto->class = 'estilo_texto'. $texto->show().?> e o resultado disso tudo é: Sport Club Internacional Então a minha duvida é: Dessa forma que o livro esta fazendo realmente é a melhor forma de se trabalhar com PHP_OO, HTML e CSS, fazendo o PHP gerar tudo?.ObrigadoCarregando comentários...