dprmc / clear-structure-sentry-web-services
一个用于与 Sentry 的 Web 服务 SOAP API 交互的 PHP 代码库。
Requires
- php: ^7.2|^8.0
- ext-simplexml: *
- ext-soap: *
- nesbot/carbon: ^2|^3
- sabre/xml: ^2.0|dev-master
Requires (Dev)
- mikey179/vfsstream: ^1.0
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^9|^10|^11
README
一个允许 Sentry 用户访问 Web 服务 API 的 PHP 库。
入门
这是一个私有仓库,所以如果您想使用 Composer 将此库包含到您的 PHP 项目中,需要采取特殊步骤。
清晰结构
清晰结构是一家金融科技公司,它创建了一个名为 Sentry 的投资组合管理平台。
忽略的服务
来自清晰结构
Sentry 的所有 API 都很好,除了(RetrieveReconciliationData & ExportAccountInRange)。这些已经过时,它们可能无法检索有效数据。
ExportAccount
我向清晰结构询问了这个问题。他们说代码是有效的,但由于结果集的大小,每次都会抛出内存不足异常。因此,我没有在我的库中实现此服务。
RetrieveReconciliationData
我在得到通知说此服务不受支持之前编写了此代码。我不会删除此类,以防他们将来启用它。话虽如此,不要使用它。还有其他工具可以获取对账数据。
示例
RetrieveDataCubeOutputAsDataSet
以下代码块使用了用于位置、用户、密码、dataCubeName 的占位符值,以及我们在请求中传递的参数。
您的位置 URL 应该类似。唯一的区别将是子域。像平常一样登录到您的 Sentry Web 界面。您的子域将显示在浏览器地址栏中。
此代码示例期望返回一个 SimpleXMLElement 对象数组。每个对象都有一个名为 account_number 的属性。您可以在代码的底部看到 foreach 循环,它简单地按新行打印每个账户号码。
$location = 'https://sentry1234.clearstructure.com/WebServices/DataReporterService.asmx'; $user = 'jdoe'; $pass = '12345'; $debug = true; $dataCubeName = 'my_portfolios_data_cube'; $cultureString = 'en-US'; $params = []; $params[] = RetrieveDataCubeOutputAsDataSet::getDataCubeXmlParameter('start_date','1/1/2017','datetime'); $params[] = RetrieveDataCubeOutputAsDataSet::getDataCubeXmlParameter('as_of_date','1/31/2017','datetime'); try{ $service = new RetrieveDataCubeOutputAsDataSet( $location, $user, $pass, $dataCubeName, $cultureString, $params, $debug); $result = $service->run(); $schema = $result['schema']; $rows = $result['rows']; foreach($rows as $row){ echo("\n" . $row->account_number); } } catch(Exception $e) { $this->error($e->getMessage() . " " . $e->getFile() . ':' . $e->getLine()); }
RetrieveDataCubeOutputWithDefaultsAsDataSet
此服务与 RetrieveDataCubeOutputAsDataSet 几乎完全相同。这里的区别是您不需要传递任何参数。数据立方体将使用您通过 Sentry Web 界面设置的任何默认值执行。
$location = 'https://sentry1234.clearstructure.com/WebServices/DataReporterService.asmx'; $user = 'jdoe'; $pass = '12345'; $debug = true; $dataCubeName = 'my_portfolios_data_cube'; $cultureString = 'en-US'; try{ $service = new RetrieveDataCubeOutputWithDefaultsAsDataSet( $location, $user, $pass, $dataCubeName, $cultureString, $debug); $result = $service->run(); $schema = $result['schema']; $rows = $result['rows']; foreach($rows as $row){ echo("\n" . $row->account_number); } } catch(Exception $e) { $this->error($e->getMessage() . " " . $e->getFile() . ':' . $e->getLine()); }
测试
此库包含一个 phpunit.xml.dist
文件。
创建一个名为 phpunit.xml
的副本,并填写适用于您的 Sentry 账户的 PHP 环境变量。