zamzar / zamzar-php
Zamzar PHP Library
Installs: 27 763
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 5
Forks: 3
Open Issues: 2
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
- Dependencies
- 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');
If you do not wish to use Composer, you can download the latest release. Then, to use the bindings, include the init.php
file.
require_once('/path/to/zamzar-php/init.php');
Dependencies
The bindings require the following extensions in order to work properly:
If you use Composer, these dependencies should be handled automatically. If you install manually, you'll want to make sure that these extensions are available.
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.