Skip to content

🖨️ A Dynamark Communication Protocol 3 client, written in PHP

License

Notifications You must be signed in to change notification settings

graze/dynamark3-client

Repository files navigation

dynamark3-client

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

A Dynamark Communication Protocol 3 client, written in PHP

Install

Via Composer

composer require graze/dynamark3-client

Usage

Instantiating a client

Use the factory method to return a Dynamark3ClientInterface instance:

$client = Graze\Dynamark3Client\Dynamark3Client::factory();
...

Issuing commands

Connect to a remote endpoint using connect:

...
$dsn = '127.0.0.1:20000';
$client->connect($dsn);
...

Commands are then simply method names that can be called directly on the client:

...
// issue a GETXML command
$resp = $client->getxml();
...

Commands containing spaces are represented using camelCase:

...
// issue a MARK STOP command
$resp = $client->markStop();
...

Command arguments are passed as method paramaters:

...
// issue a DELETEFILE command
$path = '\hard disk\domino\filecoding\codes.txt';
$resp = $client->deletefile($path);
...

Responses

The client will respond with a Dynamark3ResponseInterface object with the following methods:

/**
 * Any response from the server up until a prompt is encountered.
 *
 * @return string
 */
public function getResponseText();

/**
 * Whether an error prompt was encountered.
 *
 * @return bool
 */
public function isError();

/**
 * The error code returned from the Dynamark 3 server
 *
 * @return int
 */
public function getErrorCode();

Handling a response:

...
$resp = $client->getxml();
if ($resp->isError()) {
    echo sprintf('the server responded with error code: [%d]', $resp->getErrorCode());
    // look up the error code in the Dynamark 3 protocol docs
    return;
}

$xml = $resp->getResponseText();
// do something fun with the xml

Example success response:

Screenshot of terminal text showing a success response

Example error response:

Screenshot of terminal text showing an error response

Some commands will return interesting data in their response, e.g. getxml:

Screenshot of terminal text showing XML response

Change log

Please see CHANGELOG for more information what has changed recently.

Testing

make test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.