elcweb / soap-client
此包已被废弃,不再维护。未建议替代包。
Salesforce SOAP API 的 PHP 客户端
dev-master
2015-06-12 14:32 UTC
Requires
- php: >=5.3.0
- doctrine/common: ~2.4
- phpforce/common: dev-master@dev
- psr/log: *
Suggests
- monolog/monolog: For logging SOAP transactions
Conflicts
Replaces
This package is auto-updated.
Last update: 2021-09-07 18:47:18 UTC
README
###我在寻找维护者!
PHPForce Soap Client:Salesforce SOAP API 的 PHP 客户端
简介
此库是 Salesforce SOAP API 的客户端,旨在作为 Force.com Tookit for PHP 的替代品。
功能
此库的功能包括以下内容。
- PHP 和 SOAP 日期和日期时间对象之间的自动转换。
- 将 Salesforce (UTC) 时间自动转换为您的本地时区。
- 通过事件轻松扩展:添加自定义日志记录、缓存、错误处理等。
- 通过记录迭代器轻松迭代需要多次调用 API 的大型结果集。
- BulkSaver 通过使用批量创建、删除、更新和 Upsert 帮助您保持在 Salesforce API 限制内。
- 完全单元测试(仍在进行中)。
- 与 Symfony2 Mapper Bundle 一起使用客户端,以获得更轻松地访问 Salesforce 数据。
安装
此库在 Packagist 上可用。安装此库的推荐方法是使用 Composer
$ php composer.phar require phpforce/soap-client dev-master
用法
客户端
使用客户端查询和操作您的组织 Salesforce 数据。首先使用构建器构造客户端
$builder = new \Phpforce\SoapClient\ClientFactory( '/path/to/your/salesforce/wsdl/sandbox.enterprise.wsdl.xml' 'username', 'password', 'security_token' ); $client = $builder->getInstance();
SOQL 查询
$result = $client->query('select Name, SystemModstamp from Account limit 5');
这将从 Salesforce 获取五个账户并返回它们作为 RecordIterator
。您现在可以遍历结果。账户的 SystemModstamp
以 \DateTime
对象的形式返回
foreach ($results as $account) { echo 'Last modified: ' . $account->SystemModstamp->format('Y-m-d H:i:') . "\n"; }
一对一关系(子查询)
子查询的结果本身也作为记录迭代器返回。所以
$accounts = $client->query( 'select Id, (select Id, Name from Contacts) from Account limit 10' ); foreach ($accounts as $account) { if (isset($account->Contacts)) { foreach ($account->Contacts as $contact) { echo sprintf("Contact %s has name %s\n", $contact->Id, $contact->Name); } } }
获取大量记录
如果您发出的查询返回超过 2000 条记录,则 Salesforce API 仅返回前 2000 条记录。使用 queryLocator
,您可以在 2000 个批次的数量中获取以下结果。记录迭代器会自动为您执行此操作
$accounts = $client->query('Select Name from Account'); echo $accounts->count() . ' accounts returned'; foreach ($accounts as $account) { // This will iterate over the 2000 first accounts, then fetch the next 2000 // and iterate over these, etc. In the end, all your organisations’s accounts // will be iterated over. }
日志记录
要启用客户端的日志记录,请在构建器上调用 withLog()
。例如,当使用 Monolog 时。
$log = new \Monolog\Logger('name'); $log->pushHandler(new \Monolog\Handler\StreamHandler('path/to/your.log')); $builder = new \Phpforce\SoapClient\ClientFactory( '/path/to/your/salesforce/wsdl/sandbox.enterprise.wsdl.xml' 'username', 'password', 'security_token' ); $client = $builder->withLog($log) ->getInstance();
现在将对 Salesforce API 的所有请求以及它返回的响应和任何错误进行记录。