pl: Implementierung eines Interface und Vererbung

Beitrag lesen

Ein Interface? Bitteschön:

<?php

interface SqlString{    
    function select();
    function from();
    function where();
    function order();
    function limit();
}

# Basisklasse
class SqlBase{
    # SQL Fragmente erfassen
    function __construct($frag){
        $this->FRAG = $frag;
        $hthis->SQL = '';
    }
}

# Spezialisiere die Aufgabe
# durch Überlagerung der Interfacemethoden
class Thread extends SqlBase implements SqlString{
    function select(){
        echo "SELECT ".join(", ", $this->FRAG['fields']);
    }
    function from(){
        echo " FROM ".$this->FRAG['tabn'];
    }
    function where(){
        echo " WHERE threadid = ".$this->FRAG['threadid'];
    }
    function order(){
        echo " ORDER BY ".$this->FRAG['orderby']." DESC";
    }
    function limit(){}
}


# SQL zum Auslesen eines Thread
$m = new Thread(array(
    'threadid' => 2,
    'tabn'     => 'tunguskaforum',
    'fields'   => array('mesgid','author','subject','mesg','mesgdate'),
    'orderby'  => 'mesgdate'
));

# Rufe die Methoden des Interface auf
$m->select();
$m->from();
$m->where();
$m->order();
$m->limit();

MFG