zamzar / zamzar-php
Zamzar PHP Library
Installs: 31 426
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 5
Forks: 4
Open Issues: 3
Requires
- php: >=7.2.34
- ext-json: *
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- phpunit/phpunit: ^8.5
README
Easy to use PHP file conversion API with support for 1,100+ file conversions - convert documents, audio, images, video, eBooks and more. Use zamzar-php
to convert files between different formats as part of your PHP application with the Zamzar file conversion API. Common use cases include:
- Convert Microsoft Word (DOCX, DOC) to PDF
- Extract text from PDF files
- Convert Powerpoint (PPT, PPTX) to JPG
- Archive email (MSG files) to PDF
This is the official PHP SDK for the Zamzar file conversion API.
Jump to:
- Requirements
- Installation
- Initialise the Zamzar Client
- Test the Connection
- Typical Usage
- Configure a Logger
- Resources
Requirements
- Before you begin, signup for a Zamzar API Account or retrieve your existing API Key from the Zamzar Developers Homepage
- PHP 7.2.34 and later.
Installation
You can install the bindings via Composer. Run the following command:
composer require zamzar/zamzar-php
To use the bindings, use Composer's autoload:
require_once('vendor/autoload.php');
Initialise the Zamzar Client
To initialise the client, declare a new ZamzarClient which accepts a string or config array:
// Connect to the Production API using an API Key $zamzar = new \Zamzar\ZamzarClient('apikey');
To specify whether the client using the Production or Test API, use a Config array:
// Use the Production API $zamzar = new \Zamzar\ZamzarClient([ 'api_key' => 'apiKey', 'environment' => 'production' ]); // Use the Sandbox API $zamzar = new \Zamzar\ZamzarClient([ 'api_key' => 'apiKey', 'environment' => 'sandbox' ]);
Test the Connection
To confirm your credentials are correct, test the connection to the API which will return a welcome message and confirm which API you are using (Production or Test).
echo $zamzar->testConnection();
Typical Usage
The most common requirement is to submit a job to convert a file, wait for the job to complete, download the converted files and delete the files on Zamzar servers.
// Submit the file $job = $zamzar->jobs->create([ 'source_file' => 'path/to/local/file', 'target_format' => 'xxx' ]); // Wait for the job to complete (the default timeout is 60 seconds) $job->waitForCompletion(30); // Download the converted files $job->downloadTargetFiles('path/to/folder/'); // Delete the source and target files on Zamzar's servers $job->deleteAllFiles();
The above use case might be applied when other things are happening in between each step, but if not, and you want to chain the whole thing together:
// Do the whole thing together $job = $zamzar->jobs->create([ 'source_file' => 'path/to/localfile', 'target_format' => 'pdf' ]) ->waitForCompletion(120) ->downloadTargetFiles('path/to/folder') ->deleteAllFiles();
Configure a Logger
The library does minimal logging, if the debug
config option is used. Use either the supplied default logger or a psr-3 compatible logger.
$client = new Zamzar\ZamzarClient([ 'api_key' = '****', 'debug' => true, ]); // PSR-3 Compatible Logger \Zamzar\Zamzar::setLogger($psr3Logger); // Using Monolog $logger = new Logger('Zamzar'); $logger->pushHandler(new StreamHandler(__DIR__.'/app.log', Logger::DEBUG)); \Zamzar\Zamzar::setLogger($logger);
Resources
Code Samples - Copy/Paste from examples which demonstrate all key areas of functionality.
Exceptions Handling - Learn more about API Error Codes.
Developer Docs - For more information about API operations, parameters, and responses. Use this if you need additional context on all areas of functionality.