PHP 阿里云 ODPS SDK

dev-master 2017-03-28 09:45 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:36:36 UTC


README

#aliyun-odps-php-sdk PHP 64bit

##CI Build Status

##前提条件

  1. 由于ODPS中的某些数据类型(如Bigint、Datetime)依赖于64位整数(Java中的long),而php32构建不包括此类型,因此我们必须使用64位php版本来运行ODPS项目。

    ----由于ODPS中的数据类型Bigint、Datetime的传输依赖于64位的长整型,而php默认只有64位版本才支持64位的整型,因此当前odps php sdk必须运行于64位的php版本。

  2. 由于php的一个问题,我们必须在Linux/mac-os的任何php 64位版本或Windows上的php 7+ 64位版本上使用ODPS php SDK。

    ----由于php的一个问题,如果我们使用windows的情况下,请务必使用php7+ 64位版本,Linux/MacOs则直接使用64位版本即可。

  3. 要执行单元测试,您需要在您的环境中安装PHPunit。----请在执行单元测试前确认您的环境安装有PHPunit

特性

  1. 提供阿里云 ODPS API 的全部功能支持,更多API详情请参考 官方API文档
  2. 广泛的调试支持。

服务

Odps-php-sdk包含以下服务,用于访问RestFul API

  1. \ODPS\Services\TableService
  2. \ODPS\Services\FunctionService
  3. \ODPS\Services\InstanceService
  4. \ODPS\Services\ProjectService
  5. \ODPS\Services\ResourceService
  6. \ODPS\Services\TunnelService

如何运行此项目的单元测试

  1. 在您的环境中安装composer
  2. 导航到项目文件夹并执行'composer install'命令
  3. 在命令行或phpStorm中执行'phpunit'命令

示例用法

<?php

require_once __DIR__ . "/autoload.php";

use \ODPS\Core\OdpsClient;
use \ODPS\Services\TableService;

$odps = new OdpsClient("TR2QyWfDusb0Tgce", "ZPJZBMEr2pcMP2fsGeHH36PzZeNYHW",
    "http://service.odps.aliyun.com/api", "xioxu_project");

$tableService = new TableService($odps);
$tables = $tableService->getTables();

foreach ($tables as $table) {
    print  $table->Name . "\r\n";
}

请参考单元测试用例以获取每个服务的更多详细用法。

##常见选项

设置当前项目

$service = new ResourceService($odps); $service->setCurrProject($currProject);

调试模式

$odps = new Odps(...)
$odps->setDebugMode(true);
... do service request...
$tableService = new TableService($odps);
$result = $tableService.getTable($tblName);

print $result->debugInfo;

启用http代理

要启用http代理以捕获http流量或任何其他原因,请在config.php中使用以下行

define("SetOpensearchServiceCallHttpProxy", "localhost:8888");

##已知问题

  1. 由于php不支持Date对象中的毫秒数,因此ODPS表数据的毫秒数将会丢失。

##依赖

  1. 此项目包含pb4php--Apache License 2.0的源代码
  2. PHPunit