Pest is a PHP client library for RESTful web services. I found it to be a minimal and effective back-bone for this project. The Pest dependency is handled by composer.
Thanks @Educoder!
composer require matthewpoer/php-salesforce-wrapper:dev-master
Authentication with Salesforce occurs upon instantiation of the wrapper.
try {
$sfdc = new php_sfdc_wrapper(
SFDC_BASE_URL,
SFDC_CLIENT_ID,
SFDC_CLIENT_SECRET,
SFDC_USERNAME,
SFDC_PASSWORD,
SFDC_SECURITY_TOKEN
);
} catch (\Exception $e) {
$log->critical('Error authenticating with Salesforce. Exception occurred.', array(
'Exception' => $e->getMessage()
));
die('Error authenticating with Salesforce. Exception occurred.' . PHP_EOL);
}
try {
$account_id = $sfdc->create('Account', array(
'BillingCity' => 'San Francisco',
'BillingCountry' => 'United States',
'BillingPostalCode' => '94105',
'BillingState' => 'California',
'BillingStreet' => 'The Landmark @ One Market Suite 300',
'Name' => 'Salesforce.com',
));
} catch (\Exception $e) {
$message = $e->getMessage();
$log->critical($message);
die('Error creating Salesforce Account. Exception occurred.' . PHP_EOL);
}
try {
$account_id = $sfdc->delete('Account', $account_id);
} catch (\Exception $e) {
$message = $e->getMessage();
$log->critical($message);
die('Error deleting Salesforce Account. Exception occurred.' . PHP_EOL);
}
The query
method accepts as parameters,
- an s0bject name
- an array of fields desired in the result, defaulting to just the
Id
andName
fields - an string to use as the SOQL query's
WHERE
clause - a boolean on whether or not a result should be required (default TRUE). If this is TRUE then the wrapper will throw an exception when no records are found matching the conditions in the
WHERE
clause.
try {
$accounts = $sfdc->query(
'Account',
array('Id','Name'),
"name='Salesforce.com'",
FALSE
);
foreach($accounts as $account) {
echo "Found account with ID of " . $account['Id'] . PHP_EOL;
}
} catch (\Exception $e) {
$message = $e->getMessage();
$log->critical($message);
die('Error querying for the Salesforce Account. Exception occurred.' . PHP_EOL);
}