\Colibri\DataDataAccessPoints

Класс фабрика для создания точек доступа

Пример:

try {

 $accessPoint = App::DataAccessPoints()->Get('main');

 # Получение данных по запросу

 class Queries {
     const TestSelectQuery = 'select * from test where id=[[id:integer]] and text=[[text:string]] and dbl=[[dbl::double]]';
 }
 $reader = $accessPoint->Query(Queries::TestSelectQuery, ['page' => 1, 'pagesize' => 10, 'params' => ['id' => 1, 'text' => 'adfadf', 'dbl' => 1.1]]);
 while($result = $reader->Read()) {
     print_r($result); // обьект
 }

 # или без параметров

 $reader = $accessPoint->Query('select * from test where id=\'2\' and text=\'adfasdfasdf\' and dbl=\'1.1\'', ['page' => 1, 'pagesize' => 10]);
 while($result = $reader->Read()) {
     print_r($result); // обьект
 }

 $accessPoint->Query('BEGIN');

 # если необходимо выполнить запрос insert, update или delete
 $nonQueryInfo = $accessPoint->Query('delete from test where id=1', ['type' => DataAccessPoint::QueryTypeNonInfo]);

 # если необходимо выполнить запрос с большим количеством данных, например для запросов с автоподкачкой
 $reader = $accessPoint->Query('select * from test', ['page' => 1, 'pagesize' => 100, 'type' => DataAccessPoint::QueryTypeBigData]);

 # ввод данных
 $nonQueryInfo = $accessPoint->Insert('test', ['text' => 'адфасдфасдфасдф', 'dbl' => 1.1], 'id'); # только для postgresql
 # возвращается класс NonQueryInfo, для postgres необходимо передать дополнительный параметр returning - название поля, которое нужно вернуть

 # обновление данных
 $returnsBool = $accessPoint->Update('test', ['text' => 'adfasdfasdf', 'dbl' => 1.2], 'id=1');
 # возвращает true если обновление прошло успешно

 # ввод с обновлением данных, если есть дубликат по identity полю или sequence для postgresql
 $nonQueryInfo = $accessPoint->InsertOrUpdate('test', ['id' => 1, 'text' => 'adfadsfads', 'dbl' => 1.1], ['id', 'text'], 'id');
 # поле returning нужно только для postgresql
 # возвращается класс NonQueryInfo, для postgres необходимо передать дополнительный параметр returning - название поля, которое нужно вернуть

 # ввод данны пачкой
 $nonQueryInfo = $accessPoint->InsertBatch('test', [ ['text' => 'adsfasdf', 'dbl' => 1.0], ['text' => 'adsfasdf', 'dbl' => 1.1] ]);

 $accessPoint->Query('COMMIT');

 # удаление данных
 $returnsBool = $accessPoint->Delete('test', 'id=1');
 # возвращает true если удаление прошло успешно, нужно учесть, что если не передать параметр condition то будет выполнено truncate table test

 # получение списка таблиц
 $tablesReader = $accessPoint->Tables();
 # возвращает IDataReader

} catch(DataAccessPointsException $e) { print_r($e); }

Summary

Methods
Properties
Constants
__construct()
Instance()
Get()
__get()
$accessPoints
$pool
No constants found
No protected methods found
$instance
N/A
No private methods found
$_accessPoints
$_accessPointsPool
N/A

Properties

$accessPoints

$accessPoints : array

Type

array

$pool

$pool : array

Type

array

$_accessPoints

$_accessPoints : \Colibri\Data\stdClass

Список точек доступа

Type

\Colibri\Data\stdClass

$_accessPointsPool

$_accessPointsPool : array

Список открытых точек доступа

Type

array

Methods

__construct()

__construct() 

Конструктор

Get()

Get(string  $name) : \Colibri\Data\DataAccessPoint

Создает точку доступа

Parameters

string $name

Returns

\Colibri\Data\DataAccessPoint

__get()

__get(string  $property) : void

Геттер

Parameters

string $property