clouding/presto-client-php

PHP的Presto客户端库。

v1.1.0 2019-04-05 18:08 UTC

This package is auto-updated.

Last update: 2024-09-28 02:16:00 UTC


README

PHPStan

PHP编程语言的Presto客户端。

灵感来源于illuminate/database

特性

  • 定义多个连接。
  • 以关联数组的形式获取结果。

安装

composer require clouding/presto-client-php

快速开始

创建Presto管理器

<?php

use Clouding\Presto\Presto;

$presto = new Presto();

$presto->addConnection([
    'host' => 'localhost:8080',
    'catalog' => 'default',
    'schema' => 'presto',
]);

// Set manager as global (optional)
$presto->setAsGlobal();

获取默认连接并发送查询

<?php

$posts = $presto->connection()->query('select * from posts')->get();

如果将管理器设置为全局,则直接查询并获取数据

<?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'],
    ]
*/    

使用方法

多个连接

<?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();

运行测试

composer test