Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Amigos,
Estou querendo criar uma biblioteca que gere de forma simples e sem complicações vários elementos HTML, como formulários, tabelas, etc.. Aí pensei que seria mais fácil aproveitar as classes do Document Object Model (ou DOM, nativas no PHP 5), e extender as minhas classes a partir delas... já que um documento XHTML não deixa de ser um XML.
Como a documentação do DOM no site do PHP é meio ruim (tem pouca informação e quase nenhum exemplo), eu baixei o código fonte do PHP pra estudar essa biblioteca (mesmo sendo uma topeira em linguagem C). Até descobri algumas coisas, mas ainda estou apanhado em alguns pontos. Por exemplo, se você faz:
<?php
class FormElement extends DOMElement {
function __construct() {
parent::__construct("form");
}
}
$Form = new FormElement();
$Form->setAttribute("method", "post");?>
Gera uma Exception dizendo "NO MODIFICATION ALLOWED ERROR". Mas se você fizer isto, funciona:
<?php
class FormElement extends DOMElement {
function __construct() {
parent::__construct("form");
}
}
$Doc = new DOMDocument();
$Form = new FormElement();
// adiciona o elemento <form> ao documento
$Doc->appendChild($Form);
$Form->setAttribute("method", "post");
// conferindo
echo htmlentities($Doc->saveHTML());
?>
O que eu quero saber é: seria possível trabalhar com esses elementos individualmente, ou eu sempre vou precisar ter um objeto do tipo "DOMDocument" para poder utilizá-los?
Acredito que a resposta seja que sempre vou precisar ter um DOMDocument... até porque vou precisar do método saveHTML(), que só tem nele. Mas o engraçado é que se eu remover o elemento $Form do $Doc, eu consigo alterá-lo à vontade. Então por que eu não consigo antes? :-/
Obrigado a todos que puderem me ajudar! :thumbsup:
Carregando comentários...