pl: OOP Polymorphie

Beitrag lesen

Hier mal ein Beispiel was Du auch auf Deine Tabellenklasse anwenden kannst:

# Klasse zum Erstellen einer sitemap.xml /urlset
class Sitemap{
    function __construct($opts){
        $opts = array_merge( array(
            'proto'    => '', 
            'domain'   => '',
            'version'  => '1.0',
            'encoding' => 'UTF-8',
            'xmlns'    => 'http://www.sitemaps.org/schemas/sitemap/0.9'
        ), $opts);
        $this->OPTS = $opts;
        $this->URLSET = array();
        $this->BUFFER = '';
    }

    function add($url){
        $this->URLSET[] = $url;
    }

    function out(){
        $this->BUFFER = sprintf("<?xml version='%s' encoding='%s'>\n", $this->OPTS['version'], $this->OPTS['encoding']);
        $this->BUFFER .= sprintf("\t<urlset xmlns='%s'>\n", $this->OPTS['xmlns']);
        $this->urlset();
        $this->BUFFER .= "\t</urlset>";
        return $this->BUFFER;
    }
    
    function urlset(){
        foreach( $this->URLSET as $url ){
            $this->BUFFER .= sprintf("\t\t<url><loc>%s</loc></url>\n", $url);
        }
    }
}



$s = new Sitemap( array( 
    'proto' => 'https', 
    'domain' => 'example.org' 
));

$s->add('/index.html');
$s->add('/foo.html');
$s->add('/find');
echo $s->out();

Damit ist es einfach, weitere XML-Elemente einzubauen. OOP lebt von der Vielgestaltigkeit und umgekehrt.

MFG