Como utilizar PHP-OO junto com HTML e CSS
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
/**
* classe TStyle
* classe para abstração Estilos CSS
*/
class TStyle
{
private $name; // nome do estilo
private $properties; // atributos
static private $loaded; // array de estilos carregados
/**
* método construtor
* instancia uma tag html
* @param $name = nome da tag
*/
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
<?php
// inclui as classes
include_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 ? .Obrigado
Discussão (4)
Carregando comentários...