abmn614 / presto-client-php
Presto client library for PHP.
V1.1.7
2024-11-07 08:03 UTC
Requires
- php: >=7.1
- ext-json: *
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- blastcloud/guzzler: ^1.0
- mockery/mockery: ^1.2
- phpstan/phpstan: ^0.11.2
- phpstan/phpstan-mockery: ^0.11.0
- phpunit/phpunit: ^8.0
- squizlabs/php_codesniffer: ^3.4
- symfony/var-dumper: ^4.2
README
A Presto client for the PHP programming language.
Inspired by illuminate/database
Features
- Multiple connections define.
- Get result as an associative array.
- add support for session
- add support for insert overwrite
Installation
composer require abmn614/presto-client-php
Quick Start
Create a presto manager
<?php use Clouding\Presto\Presto; $presto = new Presto(); $presto->addConnection([ 'host' => 'localhost:8080', 'catalog' => 'default', 'schema' => 'presto', ]); // Set manager as global (optional) $presto->setAsGlobal();
Get a default connection and send query
<?php $posts = $presto->connection()->query('select * from posts')->get();
If set manager as global, just query directly and get data
<?php $posts = Presto::query('SELECT * FROM posts')->get(); /* [ [1, 'Good pracetice'], [2, 'Make code cleaner'], ] */ $posts = Presto::query('SELECT * FROM posts')->getAssoc(); /* [ ['id' => 1, 'title' => 'Good pracetice'], ['id' => 2, 'title' => 'Make code cleaner'], ] */
Usage
Multiple connections
<?php use Clouding\Presto\Presto; $presto = new Presto(); $presto->addConnection([ 'host' => 'localhost:8080', 'catalog' => 'default', 'schema' => 'presto', ]); $presto->addConnection([ 'host' => 'localhost:8080', 'catalog' => 'default2', 'schema' => 'presto2', ], 'presto2'); $presto->setAsGlobal(); // Get connections $connections = Presto::getConnections(); // Specify connection $posts = Presto::query('SELECT * FROM posts', 'presto2')->get();
Running Tests
composer test