/databaselayer

Primary LanguagePHPGNU Lesser General Public License v3.0LGPL-3.0

Databaselayer

PHP >= 8.0 Contao >= 4.9 Tested with Contao 4.9 | 4.13 | 5.1 PHPStan Level 9

Beschreibung

Bei dieser Software handelt es sich um eine Erweiterung für das Open Source CMS Contao, die Zugriff auf die Datenbank vereinfacht.

Autor

e@sy Solutions IT: Patrick Froch info@easySolutionsIT.de

Lizenz

Die Software wird unter LGPL-v3 veröffentlicht. Details sind in der Datei LICENSE zu finden.

Voraussetzungen

  • php: ~8.0
  • contao/core-bundle: ~4.9|^5.1

Installation

Die Erweiterung kann einfach über den ContaoManager installiert werden. Einfach nach esit/databaselayer suchen und installieren.

Verwendung

Da die Funktionalität auf verschiedene Klassen aufgeteilt ist, gibt es eine Fassade, die die Funktion bündelt. Für die Verwendung der Erweiterung wird fast ausschließlich der DatabaseHelper verwendet. Dieser ermöglicht einfache Datenbankoperationen wie loadByValue, loadByList, insert, update und delete. Wenn man komplexere Abfragen benötigt, kann man sich mit getQueryBuilder einen QueryBuilder geben lassen und die Abfrage manuell erstellen.

use \Esit\Databaselayer\Classes\Services\Helper\DatabaseHelper;

myClass
{

    private DatabaseHelper $dbHelper;

    public function __construct(DatabaseHelper $dbHelper)
    {
        $this->dbHelper = $dbHelper;
    }

    public function myTest(): void
    {
        // lesende Operationen
        $row        = $this->dbHelper->loadByValue(12, 'id', 'tl_member');
        $collection = $this->dbHelper->loadByList([12, 13, 14 ,15], 'id', 'tl_member');

        // schreibende Operationen
        unset($row['id']);  // Id muss unique sein!
        $id = $this->dbHelper->insert($row, 'tl_member');
        $this->dbHelper->update($row, 16, 'tl_member');
        $this->dbHelper->delete(16, 'tl_member');

        // Verwendung des QueryBuilders
        $query  = $this->dbHelper->getQueryBuilder();
        $query->select('*')->from('tl_member')->where->('id > :id')->setParameter('id', 12);
        $result = $query->executeQuery();
    }
}