junker/hsal

HandlerSocket Abstraction layer

0.2.2 2021-01-06 05:31 UTC

This package is auto-updated.

Last update: 2024-12-06 13:39:02 UTC


README

Build Status Latest Stable Version Total Downloads Scrutinizer Code Quality License

HSAL - HandlerSocket Abstraction Layer library for PHP

Requirements

HSAL requires PHP 5.4 or later.

one of handlerSocket Libraries:

Installation

The best way to install HSAL is to use a Composer:

php composer.phar require junker/hsal

Examples

use HSAL\HSAL;

$hs = new HSAL('localhost', 'database');

//SELECT id,title FROM pages WHERE id=5
$page = $hs->fetchAssoc('pages', 
	['id', 'title'], 
	[HSAL::INDEX_PRIMARY => 5]
); 
print_r($page); // ['id' => 5, 'title' => 'page number 5']
//SELECT title FROM pages WHERE id=5
$title = $hs->fetchColumn('pages', 'title', [HSAL::INDEX_PRIMARY => 5]); 
print_r($title); // page number 5
//SELECT id,page_id,title FROM pages_lang WHERE page_id=5 AND language_id=2
$page = $hs->fetchArray('pages_lang', 
	['id', 'page_id', 'title'], 
	['page_lang' => [5,2]]
); 
print_r($title); // [21, 5, 'numéro de la page 5']
//SELECT id,title FROM pages WHERE view_count>10 LIMIT 5
$pages = $hs->fetchAll('pages', 
	['id', 'title'], 
	['view_count' => 10], 
	HSAL::OPERATOR_GREATER, 
	5
); 
print_r($pages); 
// [['id' => 4, 'title' => 'page number 4'], ['id' => 5, 'title' => 'page number 5']] 
//can make request to another database(i.e. dev_database) without creating new HSAL instance
//SELECT title FROM dev_database.pages WHERE id=5
$title = $hs->fetchColumn('dev_database.pages', 'title', [HSAL::INDEX_PRIMARY => 5]); 
use HSAL\HSAL;

$hs = new HSAL('localhost', 'database', ['driver' => HSAL::DRIVER_HSPHP, 'port_write' => 5555]);

$hs->insert('pages', ['id' => 6, 'title' => 'New page']);

$result = $hs->delete('pages', ['id' => 6]);
print_r($result); // 1
$result = $hs->delete('pages', ['id' => 6]);
print_r($result); // 0, because record doesn't exists

$hs->update('pages', ['title' => 'Best page'], [HSAL::INDEX_PRIMARY => 5]);

$hs->increment('pages', 'view_count', [HSAL::INDEX_PRIMARY => 5]);

API

Methods

__construct($host, $database, $options)

  • driver: default HSAL::DRIVER_AUTO
  • port_read: read port (int)
  • port_write: write port (int)
  • timeout: timeout, works only for Handlersocketi driver (double, default: 5)
  • rw_timeout: read/write timeout, works only for Handlersocketi driver (double, default: 5)

fetchArray($table, $fields, $index_condition, $operator)

fetchAssoc($table, $fields, $index_condition, $operator)

fetchColumn($table, $field, $index_condition, $operator)

fetchAll($table, $fields, $index_condition, $operator, $limit, $offset)

delete($table, $index_condition, $operator)

insert($table, $values)

update($table, $values, $index_condition, $operator)

increment($table, $field, $index_condition, $operator, $increment)

decrement($table, $field, $index_condition, $operator, $decrement)

//Operators
HSAL::OPERATOR_EQUAL = '=';
HSAL::OPERATOR_LESS = '<';
HSAL::OPERATOR_LESS_EQUAL = '<=';
HSAL::OPERATOR_GREATER = '>';
HSAL::OPERATOR_GREATER_EQUAL = '>=';

//Drivers
HSAL::DRIVER_AUTO //auto-detect
HSAL::DRIVER_HSPHP
HSAL::DRIVER_HANDLERSOCKETI

Roadmap