PHP code example of northwestern-sysdev / event-hub-php-sdk
1. Go to this page and download the library: Download northwestern-sysdev/event-hub-php-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
northwestern-sysdev / event-hub-php-sdk example snippets
$message_api = new \Northwestern\SysDev\SOA\EventHub\Message('https://northwestern-dev.apigee.net', 'my api key', new GuzzleHttp\Client);
$topic_name = 'etsysdev.test.queue.name';
try {
$message = $message_api->readOldest($topic_name); // returns a DeliveredMessage object
// The ID is useful for moving messages & troubleshooting. The raw message will be a plain text representation, ideal for logging!
log_stuff_in_my_database($message->getId(), $message->getRawMessage());
// If you use JSON messages, this will be a PHP associative array. For XML, you'll need to getRawMessage() and parse it yourself.
$body = $message->getMessage();
update_my_database($body['some_unique_id_from_the_message'], $body['some_other_info']['a_field']);
// Should be the last thing you do in your try block
$message_api->acknowledgeOldest($topic_name);
} catch (\Exception $e) {
// If we get an error before the acknowledgeOldest call, the message won't be ack'd & removed from the queue.
// This gives you an opportunity to fix your stuff & try again!
}
$topic_api = new \Northwestern\SysDev\SOA\EventHub\Topic('https://northwestern-dev.apigee.net', 'my api key', new GuzzleHttp\Client);
$topic_name = 'etsysdev.test.queue.name';
// If you are sending JSON messages, you can build your messages as PHP associative arrays and send those.
$my_message = [
'id' => 1,
'important_enterprise_data' => 'Bananas float in water because they are less dense in comparison.',
'crucial_security_info' => 'Bananas grow on plants that are officially considered an herb.',
];
$message_id = $eh->writeJsonMessage($topic_name, $my_message);
// For XML, you are responsible for building the string & sending the appropriate content type.
$my_message = '<?xml version="1.0" encoding="UTF-8"
$webhook_api = new \Northwestern\SysDev\SOA\EventHub\Webhook('https://northwestern-dev.apigee.net', 'my api key', new GuzzleHttp\Client);
$topic_name = 'etsysdev.test.queue.name';
// Create a paused webhook
$details = $webhook_api->create($topic_name, [
'topicName' => $topic_name,
'endpoint' => 'https://my-app-dev.northwestern.edu/api/webhook/receive', // the URL in your application
'contentType' => 'application/json', // desired format for delivered messages
'active' => false, // start off paused, so no deliveries are made to your app
'securityTypes' => ['NONE'], // what authentication method(s) need to be done to authenticate w/ your endpoint -- see the webhook documentation for more info
'webhookSecurity' => [
['securityType' => 'NONE']
]
]);
// When you're ready, turn the webhook on:
$details = $webhook_api->unpause($topic_name);
// You can adjust any of your settings whenever you need to -- see the EventHub docs for more info
$details = $webhook_api->updateConfig($topic_name, [
'endpoint' => 'https://my-app-dev.northwestern.edu/api/v2/webhooks',
]);
// Or remove the webhook entirely & go back to polling the queue
$webhook_api->delete($topic_name);
$client = \Northwestern\SysDev\SOA\EventHub\Guzzle\RetryClient::make();
$api = new \Northwestern\SysDev\SOA\EventHub\Webhook('https://northwestern-dev.apigee.net', 'my api key', $client);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.