Christian Kruse: PDO oder SQL Statement

Beitrag lesen

Hallo MB,

z.B.: SQL.cfg.php

class cfgSQL
{
  private
    getUsers = '
      SELECT *
      FROM tbl_users;
    ';
  
  public function getUsers() {
    return $this->getUsers;
  }
}

dann nur noch in eine PDO-Abfrage implementieren

z.B.: DB.inc.php

class DB extends PDO
{
  public function getSQL( $SQL ) {
    // ...
  }
}

Und dann ebend aufrufen

include( 'SQL.cfg.php' );
include( 'DB.cfg.php' );
include( 'DB.inc.php' );

$cfgSQL = new $cfgSQL();
$cfgDB = new $cfgDB();
$db = new $DB( $cfgDB->getDSN(), ...);

$users = $db->getSQL( $cfgSQL->getUsers );

wäre das so ok?

Das erscheint mir zu kompliziert und overengineered. Ausserdem ist es schlecht lesbar, ich sehe vom Code lesen nicht, welches SQL dort ausgeführt wird. Erschwerend hinzu kommt, dass es von dieser Struktur nur noch ein kleiner Schritt zu einem ORM ist - warum also nicht sofort ein ORM verwenden? Im PHP-Ökosystem dürfte das bekannteste vermutlich Doctrine sein. Ein weiteres sehr bekanntes ist Propel.

LG,
CK