moin,
ich möchte "schematisch" eine Klasse von meinem wachsenden 5 MB großen Projekt vorstellen, die bei Instanziierung ein SQL-Schnipsel bereit stellt.
class Between extends AbstractConstruct implements FilterInterface
{
public function __construct (
ColumnInterface $value,
ExpressionInterface $minimum,
ExpressionInterface $maximum,
bool $negation = false,
bool $safe = false
) {
// receive
$this->receiveContext ( $value->sendContext() );
$this->_addValues( $value->getValues() );
// Built
$this->_addString( $negation ? 'NOT ' : '' );
if ( $safe ) {
$this->_addString( "{$value->getString()} BETWEEN ? AND ?" );
$this->_addValue( $minimum->getString () );
$this->_addValue( $maximum->getString () );
} else {
$this->_addString(
"{$value->getString()} BETWEEN {$maximum->getString ()} AND {$minimum->getString ()}"
);
}
$this->_addValues( $minimum->getValues() );
$this->_addValues( $maximum->getValues() );
}
}
Der Aufbau, der vorgestellte Klasse, ist bei jeder anderen Klasse, dieser Klassengruppe, die eine SQL-Schnippsel bereit stellt, die gleiche. Es sind noch Validatoren im Spiel die, vor der Abarbeitung des Methoden Rumpfes, eine Prüfung der Parameter unterziehen - hier in diesem Fall, ist es nicht notwendig da die Parameter eindeutig sind.
Kann man generalisierende "Hilfsmethode" bereit stellen die den Code etwas organisieter machen? Ich komme da einfach nicht weiter, wie ich den Code besser organisieren kann 😕. Kann man überhaupt noch etwas dran drehen oder ist das Ende, so ziehmlich erreicht?
Ich meine, wenn ich sei einer Woche den Code nich mehr zur Gesicht bekommen habe, muss ich mich in den Code erst wieder reinfinden, trotz PHPDoc an jeder Ecke, der garnich kommentiert werden brauchen (ich habe diese Code Docs weggelassen).
lgmb