rosavox/lib/alveolata/storage/implementation-sqltable/wrapper-class.php
2025-05-23 07:33:29 +00:00

65 lines
1.8 KiB
PHP

<?php
namespace alveolata\storage;
// require_once(DIR_ALVEOLATA . '/definitions.php');
require_once(DIR_ALVEOLATA . '/storage/abstract/interface.php');
require_once(DIR_ALVEOLATA . '/storage/implementation-sqltable/functions.php');
/**
* @author Christian Fraß <frass@greenscale.de>
*/
class implementation_sqltable implements interface_storage/*<int,array>*/ {
/**
* @var struct_sqltable $subject
* @author Christian Fraß <frass@greenscale.de>
*/
private $subject;
/**
* @param struct_sqltable $subject
* @author Christian Fraß <frass@greenscale.de>
*/
private function __construct(struct_sqltable $subject) {$this->subject = $subject;}
/**
* @author Christian Fraß <frass@greenscale.de>
*/
public function get_subject() {return $this->subject;}
/**
* @return implementation_sqltable
* @author Christian Fraß <frass@greenscale.de>
*/
public static function make(
\alveolata\database\interface_database $database,
string $name,
array $fields = UNSET_ARRAY
) : implementation_sqltable
{
$subject = sqltable_make($database, $name, $fields);
return (new implementation_sqltable($subject));
}
/**
* implementations
*
* @author Christian Fraß <frass@greenscale.de>
*/
public function teardown() : void {sqltable_teardown($this->subject);}
public function setup() : void {sqltable_setup($this->subject);}
public function create($value) {return sqltable_create($this->subject, $value);}
public function update($key, $value) : void {sqltable_update($this->subject, $key, $value);}
public function delete($key) : void {sqltable_delete($this->subject, $key);}
public function read($key) {return sqltable_read($this->subject, $key);}
public function search(array $parameters) : array {return sqltable_search($this->subject, $parameters);}
}
?>