La OOP (Programmazione orientata agli oggetti) ha rivoluzionato il modo di pensare e di progettare le applicazione. La Sun Microsystem, l'autore di uno dei più giovani linguaggi di programmazione: Java, ha eliminato completamente la programmazione procedurale per orientarsi alla OOP, stravolgendo completamente il mondo della programmazione. Oggi la maggior parte dei linguaggi di programmazione "odeperano" la OOP, per esempio PHP, C++, C#, Visual Basic.NET eccetera eccetera. C'è però da dire che non tutti sfruttano la OOP come si deve e come si spera che si faccia, questo per vari motivi: perchè è ancora molto comodo progettare applicazioni orientandosi ad una programmazione procedurale (a volte anche molto piu veloce) oppure perché la filosofia del linguaggio non impone quasi senza altra scelta tale pensiero, come Java. Oggi è inutile stare a spiegare i pro e i contro della programmazione procedurale e della programmazione OOP, sono due modi completamente diversi di pensare e di progettare applicazioni, però bisogna anche dire che per implementare codice di alta qualità e flessibilità è consigliabile sviluppare in OOP. (Quasi mi sono dimenticato cosa volevo dire
PHP mette a disposizione classi per progettare applicazioni web di qualità, (ci tengo però a sottilineare che PHP non è "fatto" solo per sviluppare applicazioni web, ma in PHP è possibile sviluppare anche Server Web, Server FTP, Applicazioni Desktop con GTK, Applicazioni a riga di comando, eccetera eccetera), molte volte però mi capita di vedere che il linguaggio HTML è "gettato" nelle applicazioni web PHP o applicazioni ASP come se non avesse nessun significato o responsabilità. Questo è un modo di pensare soprattutto di chi è alle prime armi nello sviluppo di applicazioni web. L'HTML ha una grande responsabilità in quanto è l'interfaccia finale con cui gli utenti interagiscono, ma non solo.
Ecco perché, secondo me è di dove prestare molta attenzione al nostro HTML e utilizzare le classe DOM per implementare l'HTML
codice:
<?php
$imp=new DOMImplementation();
$dtd=$imp->createDocumentType(
"html",
"-//W3C//DTD XHTML 1.0 Strict//EN",
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
);
$dom=$imp->createDocument(
"http://www.w3.org/1999/xhtml",
"html",
$dtd
);
$dom->encoding = 'UTF-8';
$dom->standalone = false;
$html=$dom->getElementsByTagName("html")->item(0);
$html->setAttribute("xml:lang", "en");
$html->setAttribute("lang", "en");
$head=$dom->createElement("head");
$html->appendChild($head);
$dom->importNode($head);
$title=$dom->createElement("title");
$title->appendChild($dom->createTextNode("Esempio XML"));
$head->appendChild($title);
$body=$dom->createElement("body");
$html->appendChild($body);
if($dom->validate()) {
$p=$dom->createElement("p");
$p->appendChild($dom->createTextNode("Il codice XHTML 1.0 di questa pagina è valido secondo la W3C."));
$fragment=$dom->createDocumentFragment();
$fragment->appendXML("
Salve! <span style=\"text-decoration: underline;\">Salve mondo!</span>");
$p->appendChild($fragment);
$body->appendChild($p);
}
echo $dom->saveXML();
?>