xrow/soap-client

用于Salesforce SOAP API的PHP客户端

1.0 2015-05-07 12:14 UTC

This package is auto-updated.

Last update: 2024-09-16 02:53:06 UTC


README

Build Status
Scrutinizer Code Quality

###我在寻找维护者!

PHPForce Soap客户端:用于Salesforce SOAP API的PHP客户端

简介

此库是Salesforce SOAP API的客户端,旨在替代Force.com Toolkit 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\ClientBuilder(
  '/path/to/your/salesforce/wsdl/sandbox.enterprise.wsdl.xml',
  'username',
  'password',
  'security_token'
);

$client = $builder->build();

SOQL查询

$results = $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\ClientBuilder(
  '/path/to/your/salesforce/wsdl/sandbox.enterprise.wsdl.xml',
  'username',
  'password',
  'security_token'
);
$client = $builder->withLog($log)
  ->build();

现在将记录所有对Salesforce API的请求以及它返回的响应和任何错误。