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