koenigseggposche / odps
PHP 阿里云 ODPS SDK
dev-master
2017-03-28 09:45 UTC
Requires
- phpunit/phpunit: 4.8.*
This package is not auto-updated.
Last update: 2024-09-20 20:36:36 UTC
README
##前提条件
-
由于ODPS中的某些数据类型(如Bigint、Datetime)依赖于64位整数(Java中的long),而php32构建不包括此类型,因此我们必须使用64位php版本来运行ODPS项目。
----由于ODPS中的数据类型Bigint、Datetime的传输依赖于64位的长整型,而php默认只有64位版本才支持64位的整型,因此当前odps php sdk必须运行于64位的php版本。
-
由于php的一个问题,我们必须在Linux/mac-os的任何php 64位版本或Windows上的php 7+ 64位版本上使用ODPS php SDK。
----由于php的一个问题,如果我们使用windows的情况下,请务必使用php7+ 64位版本,Linux/MacOs则直接使用64位版本即可。
-
要执行单元测试,您需要在您的环境中安装PHPunit。----请在执行单元测试前确认您的环境安装有PHPunit
特性
- 提供阿里云 ODPS API 的全部功能支持,更多API详情请参考 官方API文档
- 广泛的调试支持。
服务
Odps-php-sdk包含以下服务,用于访问RestFul API
- \ODPS\Services\TableService
- \ODPS\Services\FunctionService
- \ODPS\Services\InstanceService
- \ODPS\Services\ProjectService
- \ODPS\Services\ResourceService
- \ODPS\Services\TunnelService
如何运行此项目的单元测试
- 在您的环境中安装composer
- 导航到项目文件夹并执行'composer install'命令
- 在命令行或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");
##已知问题
- 由于php不支持Date对象中的毫秒数,因此ODPS表数据的毫秒数将会丢失。
##依赖
- 此项目包含pb4php--Apache License 2.0的源代码
- PHPunit