Datenbank
Als Datenbank-Adapter wird zend-db verwendet.
Installation
Zuerst muss die Configuration von Composer erweitert werden:
{
"require": {
"falkm/hubert-db": "1.*"
}
}
Konfiguration
Anschließend erweitert man die Konfiguration von Hubert oder legt eine neue Datei config/database.global.php an. In der Konfiguration wird die Datenbank-Verbindung angegeben.
<?php
return array(
"factories" => array(
"dbAdapter" => array(hubert\extension\db\factory::class, 'get')
),
"config" => array(
"db" => array(
'driver' => 'Pdo_Mysql',
'database' => 'db_test',
'username' => 'user',
'password' => 'pass',
),
),
);
Verwendung
$result = hubert()->dbAdapter->query('SELECT * FROM `db_test` WHERE `id` = :id', ['id' => 1]);
print_r($result->current());
Im oberen Beispiel werden Daten aus einer Tabelle abgefragt und die erste Zeile ausgegeben. Beschreibungen zur Verwendung können auch unter docs.zendframework.com/zend-db/ nachgelesen werden.
Models
Die Hubert Erweiterung beinhaltet unter Anderem noch eins Struktur für Models. Zum Beispiel kann man eine Datei model/user.php anlegen:
<?php
namespace model;
class user extends \hubert\extension\db\model {
protected static $table = "user";
public static function fields(){
return array(
"id" => array('type' => 'int(11)', 'primary' => true, 'autoincrement' => true),
"name" => array('type' => 'varchar(30)', "default" => ""),
"password" => array('type' => 'varchar(50)', "default" => "")
);
}
public function getRoleIds(){
$query = "SELECT role_id FROM user_role_mapping WHERE user_id = :user_id";
$result = hubert()->dbAdapter->query($query, array("user_id" => $this->id));
$role_ids = array();
foreach ($result as $res){
$role_ids[] = $res["role_id"];
}
return $role_ids;
}
}
Informationen zur Verwendung von Models findest du hier