Erster Stand des mvc-Frameworks

This commit is contained in:
2016-08-11 14:03:25 +00:00
parent 7dffe66e91
commit 5a1dd25023
32 changed files with 8715 additions and 0 deletions

View File

@@ -0,0 +1,127 @@
<?php
/**
* Singleton-Klasse zur Herstellung der Datenbank-Verbindung
*
* @author Christian Steinle
* @date 02.08.2016
*
* @copyright CS medien- & kommunikationssysteme (http://www.steinle-computer.de)
*/
namespace Helper;
use mysqli;
class Database
{
/**
* Name der Datenbank-Tabelle für das Entsprechende Modell
*/
const TBL_NAME = '';
/**
* Name des Datenbank-Feldes mit dem PrimaryKey
*/
const PRIMARY_KEY = '';
/**
* Sortierung der Elemente für die Methode getIndex
*/
const ORDER_BY = '';
/**
* Der Filter für den Aufruf von getIndex()
* @var string
*/
static $filter = '1=1';
/**
* Hier werden die Daten von getIndex() gespeichert
* @var array
*/
static $data = array();
/**
* @var \mysqli|null
*/
protected static $db = null;
protected function __construct()
{
}
protected function __clone()
{
}
/**
* Stellt die Datenbank-Verbindung her
*
* return void
*/
final protected static function getInstance()
{
if (null === self::$db)
{
self::$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
self::$db->set_charset('utf8');
}
}
/**
* Liefert ein assoziatives Array des Datensatzes mit der übergebenen ID
*
* @param int $id
* @return array
*/
final public static function getItem($id)
{
$sql = 'SELECT * FROM ' . static::TBL_NAME . ' WHERE ' . static::PRIMARY_KEY . ' = ' . $id . ';';
$data = self::query($sql);
return (!is_array($data) || empty($data)) ? array() : current($data);
}
/**
* Liefert ein mehrdimensionales, assoziatives Array mit allen Datensätzen, die zum Filter passen
* als Schlüssel der ersten Dimension dient der Wert des Primär-Schlüssels der Datenbank-Tabelle
* Legt alle Daten in self::$data ab
*
* @see self::query()
* @see self::$data
*
* @return array
*/
final public static function getIndex()
{
$sql = 'SELECT * FROM ' . static::TBL_NAME . ' WHERE ' . static::$filter . ' ' . static::ORDER_BY . ';';
self::$data = self::query($sql);
return self::$data;
}
/**
* Liefert ein mehrdimensionales, assoziatives Array mit allen Datensätzen, die zum SQL-Query passen
* als Schlüssel der ersten Dimension dient der Wert des Primär-Schlüssels der Datenbank-Tabelle
*
* @param string $sql
* @return array
*/
final protected static function query($sql)
{
self::getInstance();
$result = self::$db->query($sql);
$data = array();
while ($tmpData = $result->fetch_assoc())
{
$data[$tmpData[static::PRIMARY_KEY]] = $tmpData;
}
return $data;
}
}