CloudConvert PHP SDK

Overview

cloudconvert-php

This is the official PHP SDK v3 for the CloudConvert API v2. For API v1, please use v2 branch of this repository.

Tests Latest Stable Version Total Downloads

Install

To install the PHP SDK you will need to be using Composer in your project.

Install the SDK alongside Guzzle 7:

composer require cloudconvert/cloudconvert-php php-http/guzzle7-adapter

This package is not tied to any specific HTTP client. Instead, it uses Httplug to let users choose whichever HTTP client they want to use.

If you want to use Guzzle 6 instead, use:

composer require cloudconvert/cloudconvert-php php-http/guzzle6-adapter

Creating Jobs

use \CloudConvert\CloudConvert;
use \CloudConvert\Models\Job;
use \CloudConvert\Models\Task;


$cloudconvert = new CloudConvert([
    'api_key' => 'API_KEY',
    'sandbox' => false
]);


$job = (new Job())
    ->setTag('myjob-1')
    ->addTask(
        (new Task('import/url', 'import-my-file'))
            ->set('url','https://my-url')
    )
    ->addTask(
        (new Task('convert', 'convert-my-file'))
            ->set('input', 'import-my-file')
            ->set('output_format', 'pdf')
            ->set('some_other_option', 'value')
    )
    ->addTask(
        (new Task('export/url', 'export-my-file'))
            ->set('input', 'convert-my-file')
    );

$cloudconvert->jobs()->create($job)

You can use the CloudConvert Job Builder to see the available options for the various task types.

Uploading Files

Uploads to CloudConvert are done via import/upload tasks (see the docs). This SDK offers a convenient upload method:

use \CloudConvert\Models\Job;
use \CloudConvert\Models\ImportUploadTask;


$job = (new Job())
    ->addTask(new Task('import/upload','upload-my-file'))
    ->addTask(
        (new Task('convert', 'convert-my-file'))
            ->set('input', 'upload-my-file')
            ->set('output_format', 'pdf')
    )
    ->addTask(
        (new Task('export/url', 'export-my-file'))
            ->set('input', 'convert-my-file')
    );

$cloudconvert->jobs()->create($job);

$uploadTask = $job->getTasks()->whereName('upload-my-file')[0];

$cloudconvert->tasks()->upload($uploadTask, fopen('./file.pdf', 'r'), 'file.pdf');

The upload() method accepts a string, PHP resource or PSR-7 StreamInterface as second parameter.

You can also directly allow clients to upload files to CloudConvert:

getResult()->form->url?>" method="POST" enctype="multipart/form-data"> getResult()->form->parameters as $parameter => $value) { ?> ">
<form action="getResult()->form->url?>"
      method="POST"
      enctype="multipart/form-data">
    <? foreach ((array)$uploadTask->getResult()->form->parameters as $parameter => $value) { ?>
        <input type="hidden" name="" value="">
    <? } ?>
    <input type="file" name="file">
    <input type="submit">
form>

Downloading Files

CloudConvert can generate public URLs for using export/url tasks. You can use the PHP SDK to download the output files when the Job is finished.

$cloudconvert->jobs()->wait($job); // Wait for job completion

foreach ($job->getExportUrls() as $file) {

    $source = $cloudconvert->getHttpTransport()->download($file->url)->detach();
    $dest = fopen('output/' . $file->filename, 'w');
    
    stream_copy_to_stream($source, $dest);

}

The download() method returns a PSR-7 StreamInterface, which can be used as a PHP resource using detach().

Webhooks

Webhooks can be created on the CloudConvert Dashboard and you can also find the required signing secret there.

$cloudconvert = new CloudConvert([
    'api_key' => 'API_KEY',
    'sandbox' => false
]);

$signingSecret = '...'; // You can find it in your webhook settings

$payload = @file_get_contents('php://input');
$signature = $_SERVER['HTTP_CLOUDCONVERT_SIGNATURE'];

try {
    $webhookEvent = $cloudconvert->webhookHandler()->constructEvent($payload, $signature, $signingSecret);
} catch(\CloudConvert\Exceptions\UnexpectedDataException $e) {
    // Invalid payload
    http_response_code(400);
    exit();
} catch(\CloudConvert\Exceptions\SignatureVerificationException $e) {
    // Invalid signature
    http_response_code(400);
    exit();
}

$job = $webhookEvent->getJob();

$job->getTag(); // can be used to store an ID

$exportTask = $job->getTasks()
            ->whereStatus(Task::STATUS_FINISHED) // get the task with 'finished' status ...
            ->whereName('export-it')[0];        // ... and with the name 'export-it'
// ...

Alternatively, you can construct a WebhookEvent using a PSR-7 RequestInterface:

$webhookEvent = $cloudconvert->webhookHandler()->constructEventFromRequest($request, $signingSecret);

Unit Tests

vendor/bin/phpunit --testsuite unit

Integration Tests

vendor/bin/phpunit --testsuite integration

By default, this runs the integration tests against the Sandbox API with an official CloudConvert account. If you would like to use your own account, you can set your API key using the CLOUDCONVERT_API_KEY enviroment variable. In this case you need to whitelist the following MD5 hashes for Sandbox API (using the CloudConvert dashboard).

53d6fe6b688c31c565907c81de625046  input.pdf
99d4c165f77af02015aa647770286cf9  input.png

Resources

Comments
  • Download of converted files fails with large files

    Download of converted files fails with large files

    The API works fine with smaller files but when I try to upload a 200Mb+ mp4 the process fails. The file appears locally but only partially downloaded (file size 0 bytes) and the process goes to a 500 error with the message

    Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 221789177 bytes) in phar:///Sites/website/cloudconvert-php.phar/vendor/guzzlehttp/psr7/src/Stream.php on line 94

    I have tried updating my local php.ini to increase the max_filesize and other limits, but the error still occurs.

    support 
    opened by bmorerob 9
  • Multiple output files Download not working

    Multiple output files Download not working

    According to your documentation Multiple output conversion is not working as mentioned in your API documentation Getting error

    warning invalid argument supplied for foreach()

    My code looks like this

    <?php
        require __DIR__ . '/vendor/autoload.php';
        use \CloudConvert\Api;
        $api = new Api("APIKEY");
        if(isset($_POST['submit'])){
            $fileName = $_FILES["file"]["name"];
            $fileFormat = end((explode(".", $fileName)));
            $fileBaseName = explode(".", $fileName);
            $requiredFormat = $_POST['required_format'];
            $filePath = $_FILES["file"]["tmp_name"];
            if (!file_exists('original_file')) {
                mkdir('original_file', 0777, true);
            }
            move_uploaded_file($filePath,"original_file/".$fileName);
    
            $process = $api->createProcess([
                "inputformat" => $fileFormat,
                "outputformat" => $requiredFormat,
    
            ]);
    
            $process->start([
                "wait" => true,
                "save"=> true,
                "input" => "upload",
                "file" => fopen("original_file/".$fileName, 'r'),
                "filename" => $fileName,
            "outputformat" => $requiredFormat,
            ]);
    
                   // This is not working
            foreach ($process->output->files as $file) {
                $process->download($fileBaseName[0] . "." . $requiredFormat, $file);
            }
                // or:
                     this is working
            $process->downloadAll('./tests/');
    

    complete code is here

    Maybe I am doing anything wrong I want that multiple files zip to be downloaded

    opened by gauravcanon 6
  • The cloudconvert api sometimes doesn't work or show a notification on user account

    The cloudconvert api sometimes doesn't work or show a notification on user account

    Dear @cloudconvert, This week our website has encountered a serious problem: The api sometimes doesn't convert files to (.txt and .jpg) or doesn't convert to .jpg. For example: I may upload 1.pdf and get (1.txt and 1.jpg) or 1.txt or nothing(1.pdf talks about the same file). The php conversion script sometimes takes a very long time to execute, and sometimes the script finishes to execute within seconds from the ajax call. After waiting for about two minutes I get the following text response and a 500 error:

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD>
    <TITLE>500 Internal Server Error</TITLE>
    </HEAD><BODY>
    <H1>Internal Server Error</H1>
    The server encountered an internal error or misconfiguration and was unable to complete your request
    <HR>
    <I>*******.com</I>
    </BODY></HTML>
    

    Usually, files are being converted to txt. When a file isn't converted, I get the following error: Something else went wrong: cURL error 28: See http://curl.haxx.se/libcurl/c/libcurl-errors.html

    When a specific conversion succeeds, I sometimes get the following message: "Something else went wrong: Invalid process ID!"(probably because the process expires).

    Furthermore,

     $process->percent //==-1 for some reason..
    

    keeps returning -1(even when the conversion finished with success).

    I've attached my php code(a code being called with ajax) here:

    <?php
    /*
    *The following code converts any file to txt.
    */ 
    try{
        $api = new Api("***-**************************************");
        $process = $api->createProcess([
            'inputformat' => $extension,
            'outputformat' => 'txt',
        ]);
    
        $processUrl = $process->url;
    
        $process->start([
            'outputformat' => 'txt',
            'input' => [
                "ftp" => [
                "host" => "*.***.*.**",
                "port" => "21",
                "user" => "mxnsnjfc",
                "password" => "******************",
                ],
            ],
            "output" => [
                "ftp" => [
                "host" => "*.***.*.**",
                "port" => "21",
                "user" => "mxnsnjfc",
                "password" => "******************",
                "path" => "public_html/word/$id/txt/search.txt",
                ],
            ],
            "file" => "public_html/word/$id/$id.$extension",
        ]);
        //check for percentage of the conversion process.(doesn't work...)
        $process = $process->refresh();
        while($process->step != 'finished' || $process->step != 'error'){
            if($process->step == 'convert'){
                //if file is converting..
            }
            $process = $process->refresh();
        }
            $txt = ".txt finished at: " . date("H:i:s", time());
            $progressFile = fopen("debug/progressFileTxt.txt", "w") or die("Unable to open file!");
            fwrite($progressFile, $txt);
            fclose($progressFile);
    }
    /*
    *The following code checks for errors.
    */
    catch (\CloudConvert\Exceptions\ApiBadRequestException $e) {
        $txt = "Something with your request is wrong: " . $e->getMessage() . " \r\n" . date("H:i:s", time());
        $progressFile = fopen("debug/progressFile1.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    } catch (\CloudConvert\Exceptions\ApiConversionFailedException $e) {
        $txt = "Conversion failed, maybe because of a broken input file: " . $e->getMessage()  ." \r\n" .  date("H:i:s", time());
        $progressFile = fopen("debug/progressFile2.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    }  catch (\CloudConvert\Exceptions\ApiTemporaryUnavailableException $e) {
        $txt = "API temporary unavailable: " . $e->getMessage() ."\n We should retry the conversion in "  ." \r\n" .  $e->retryAfter . " seconds" . date("H:i:s", time());
        $progressFile = fopen("debug/progressFile3.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    } catch (Exception $e) {
    // network problems, etc..
        $txt = "Something else went wrong: " . $e->getMessage() . "\n"  ." \r\n" .  date("H:i:s", time());
        $progressFile = fopen("debug/progressFile4.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    }
    
    $servername = "localhost";
    $username = "mxnsnjfc_root";
    $password = "********";
    $dbname = "mxnsnjfc_PerpageDB";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname, 3306);
    $conn->set_charset("utf8");
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }
    $databaseText = file_get_contents("$txtPath/search.txt");
    
    $txtFileEscaped = $conn->real_escape_string($databaseText);
    
    $txtFileEscaped = strip_tags($txtFileEscaped);
    
    $sql = "UPDATE material_tbl SET Content = '$txtFileEscaped' WHERE MaterialID = $id";
    
    if ($conn->query($sql) === TRUE) {
        //echo "<script>/*Record updated successfully*/</script>";
    } else {
        //echo "<script>/*Error updating record: " . $conn->error . "*/</script>";
    }
    
    $conn->close();
    
    //END OF TXT FILE SAVE
    
    try{
        $api = new Api("***-**************************************");
        $process = $api->createProcess([
            'inputformat' => $extension,
            'outputformat' => 'jpg',
        ]);
    
        $processUrl = $process->url;
    
        $process->start([
            'outputformat' => 'jpg',
            'input' => [
                "ftp" => [
                    "host" => "*.***.*.**",
                    "port" => "21",
                    "user" => "mxnsnjfc",
                    "password" => "******************",
                ],
            ],
            "output" => [
                "ftp" => [
                    "host" => "*.***.*.**",
                    "port" => "21",
                    "user" => "mxnsnjfc",
                    "password" => "******************",
                    "path" => "public_html/word/$id/img/",
                ],
            ],
            "file" => "public_html/word/$id/$id.$extension",
            "converteroptions" => [
                "density" => "100",
            ],
        ]);
        //check for percentage of the conversion process.(doesn't work...)
        $process = $process->refresh();
        while($process->step != 'finished' || $process->step != 'error'){
            if($process->step == 'convert'){
    
            }
            $process = $process->refresh();
         }
    $txt = ".jpg finished at: " . date("H:i:s", time());
        $progressFile = fopen("debug/progressFileJpg.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
    }
    /*
    *The following code checks for errors.
    */
    catch (\CloudConvert\Exceptions\ApiBadRequestException $e) {
        $txt = "Something with your request is wrong: " . $e->getMessage()  ." \r\n" .  date("H:i:s", time());
        $progressFile = fopen("debug/progressFile5.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    } catch (\CloudConvert\Exceptions\ApiConversionFailedException $e) {
        $txt = "Conversion failed, maybe because of a broken input file: " . $e->getMessage()  ." \r\n" .  date("H:i:s", time());
        $progressFile = fopen("debug/progressFile6.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    }  catch (\CloudConvert\Exceptions\ApiTemporaryUnavailableException $e) {
        $txt = "API temporary unavailable: " . $e->getMessage() ."\n We should retry the conversion in " . $e->retryAfter . " seconds"  ." \r\n" .  date("H:i:s", time());
        $progressFile = fopen("debug/progressFile7.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    } catch (Exception $e) {
        // network problems, etc..
        $txt = "Something else went wrong: " . $e->getMessage() . "\n"  ." \r\n" .  date("H:i:s", time());
        $progressFile = fopen("debug/progressFile8.txt", "w") or die("Unable to open file!");
        fwrite($progressFile, $txt);
        fclose($progressFile);
        $script = '<script type="text/javascript">window.location.href="error.php";</script>';
    }
    ?>
    
    opened by codeovermatter 6
  • Download doesn't start

    Download doesn't start

    Hi, I'm using the wrapper and Cloudconvert to convert SVG charts to EMF charts. The conversion works and the file gets converted and stored on cloudconvert. But I don't seem to be able to initiate the download.

    Here is my code.

    convert([ 'inputformat' => 'svg', 'outputformat' => 'emf', 'input' => 'download', "file" => "http://****/operationsChart.svg", "save" => true, "download" => true ]) ->wait() ->download(); ?>

    Am I missing something essential?

    opened by stekla79 5
  • Issue with the convert task when we upload a file

    Issue with the convert task when we upload a file

    In https://github.com/cloudconvert/cloudconvert-php/blob/986f2c2666c96175d228d6d69561b67749638b76/src/Transport/HttpTransport.php#L185-L191 when a file is uploaded the options is not set in addResource. In the case where we work with a resource the filename is not set. In your ui the result is

    {
        "files": [
            {
                "filename": "${filename}"
            }
        ]
    }
    

    The workaround to fix the issue was to wrap the resource with new \GuzzleHttp\Psr7\Stream\($resource, ['metadata' => ['uri' => $filename]]);

    Possible to fix the lib or to fix your service because the conversion does not work although the upload is OK ?

    opened by olivier34000 4
  • Error combining files from S3 to PDF

    Error combining files from S3 to PDF

    I am trying to take 3 files that have been created and uploaded to S3 and combine them into one PDF and download it to my computer, but I keep getting the following error: CloudConvert\Exceptions\ApiBadRequestException : Input module [object Object] not found

    I started with a test, which works with the files that CloudConvert supplies for testing, but when I change them to my files, I get the error. Any help would be very much appreciated.

    Here is my code:

    function testCloudConvert() {
            $api = new Api('123');
    
            $process = $api->createProcess([
                'mode' => 'combine',
                'inputformat' => 'pdf',
                'outputformat' => 'pdf',
            ]);
    
            $this->assertNotEmpty($process);
            $jobid = '274526';
            $file1 = 'http://xxx.s3.amazonaws.com/uploads/' . $jobid . '/filename1.pdf';
            $file2 = 'http://xxx.s3.amazonaws.com/uploads/' . $jobid . '/filename2.pdf';
            $file3 = 'http://xxx.s3.amazonaws.com/uploads/' . $jobid . '/filename3.pdf';
            $process->start([
                'mode' => 'combine',
                'input' => [
                    'S3' => [
                        'accesskeyid' => 'xxxx',
                        'secretaccesskey' => 'xxxx',
                        'bucket' => 'xxx',
                    ]
                ],
                'files' => [
    //                '0' => 'https://cloudconvert.com/assets/a521306/testfiles/pdfexample1.pdf',
    //                '1' => 'https://cloudconvert.com/assets/a521306/testfiles/pdfexample2.pdf',
                    '0' => $file1,
                    '1' => $file2,
                    '2' => $file3,
                ],
                'outputformat' => 'pdf',
                'wait' => true,
            ]);
    
            $download = $process->download('outputfileNEW.pdf');
            force_download($download);
        }
    
    opened by RPort71 4
  • Getting problem in animated webp image to jpg

    Getting problem in animated webp image to jpg

    I am converting animated webp image to jpg below is my php code:

    <?php
    	require __DIR__ . '/vendor/autoload.php';
    	use \CloudConvert\Api;
    	 
    	$api = new Api("**************************");
    	 
    	$api->convert([
    	    "inputformat" => "webp",
    	    "outputformat" => "jpg",
    	    "input" => "upload",
    	    "file" => fopen('inputfile.webp', 'r'),
    	])
    	->wait()
    	->download();
    ?>
    

    When i am executing it, every time it gives me the error message like {"error":"convert: no images defined `/data/test_animation.jpg' @ error/convert.c/ConvertImageCommand/3254.\r\n","code":422}

    If i convert for static webp format then it works fine but only with animated webp format i am facing this issue, do i have to pass the frame number to convert it or write any command ? please correct me where i am wrong.

    Thanks

    opened by vsolanki888 4
  • Fatal error: PayloadTooLargeError: too many parameters

    Fatal error: PayloadTooLargeError: too many parameters

    Fatal error: Uncaught exception 'CloudConvert\Exceptions\ApiException' with message 'PayloadTooLargeError: too many parameters' in /home1/talendro/public_html/test/pdfconvert/src/Api.php:148 Stack trace: #0 /home1/talendro/public_html/test/pdfconvert/src/Api.php(169): CloudConvert\Api->rawCall('GET', '//hostq3ua8k.cl...', Array, false) #1 /home1/talendro/public_html/test/pdfconvert/src/ApiObject.php(60): CloudConvert\Api->get('//hostq3ua8k.cl...', Array, false) #2 /home1/talendro/public_html/test/pdfconvert/src/Process.php(105): CloudConvert\ApiObject->refresh(Array) #3 /home1/talendro/public_html/test/pdfconvert/generate.php(54): CloudConvert\Process->wait() #4 {main} thrown in /home1/talendro/public_html/test/pdfconvert/src/Api.php on line 148

    Below is my code which I used, please suggest on this which parameter need to be added or removed.

    $api = new Api("API_KEY"); $api->convert([ "inputformat" => "$extension", "outputformat" => "pdf", "input" => "upload", "file" => fopen('upload/docs/'.$newfilename, 'r'), ]) ->wait() ->download();

    Note : It is working fine in localhost when run in same code in server its being comes above error thank you for advance.

    opened by bikashgit 4
  • Wait Endpoint Deprecated

    Wait Endpoint Deprecated

    Cloudconvert has deprecated the wait endpoint when processing a job. It will be shutdown soon on 11/30/2022. https://cloudconvert.com/api/v2/jobs#jobs-wait

    image


    I'm currently using the method as defined in the readme:

    1. Upload
    2. Wait
    3. Download

    Do you currently have plans to update this code to handle that change?

    opened by RentecAaron 3
  • Composer Error

    Composer Error

    I'm having trouble installing the SDK via Composer, following your instructions:

    composer require cloudconvert/cloudconvert-php "guzzlehttp/guzzle:^7.0"
    

    [UnexpectedValueException] Could not parse version constraint : Invalid version string ""

    composer require cloudconvert/cloudconvert-php
    
    • Installation request for cloudconvert/cloudconvert-php ^3.1.0 -> satisfiable by cloudconvert/cloudconvert-php[3.1.0].
    • cloudconvert/cloudconvert-php 3.1.0 requires php-http/client-implementation ^1.0 || ^2.0 -> no matching package found.

    Please advise

    opened by bkonia 3
  • Would you mind if I added about 15 more lines of example to the

    Would you mind if I added about 15 more lines of example to the "uploading" section

    I have finally read between the lines and guessed as to how to start the upload from the user's browser and then wait in while the job is processing, checking status with a simple AJAX request and then downloading the result when complete. I won't write all the ajax - the critical element is how to start a job, get its ID, let the user press "submit", and then check the job using get(id) in a later request /response cycle - I get that a webhook does this same thing - but for some of us, a doing this in Ajax lets us use a mechanism we understand and feel more confident about and lets do a bit more error processing, etc. This would not replace the webhook bits -just add a few more lines just after the form example.

    opened by csev 3
  • Issue downloading the file

    Issue downloading the file

    I am using this snippet to download the file. but the window keeps loading and doesn't download any file even after I submit the file. the behavior is a bit annoying like when I refresh the page having this snippet added, the job gets started while the page is still loading, and if I upload the file, the job even gets completed but the file doesn't download at all and still the page keeps loading.

    $cloudconvert->jobs()->wait($job); // Wait for job completion
    
        foreach ($job->getExportUrls() as $file) {
    
            $source = $cloudconvert->getHttpTransport()->download($file->url)->detach();
            $dest = fopen('output/' . $file->filename, 'w');
    
            stream_copy_to_stream($source, $dest);
        }
    
    opened by Mubashir-rehma 0
  • Idle timeout reached

    Idle timeout reached

    Sometimes, the following error occurred : Idle timeout reached for "https://api.cloudconvert.com/v2/jobs/.../wait", but in the dahsboard I can see that this conversion have been successful.

    Is there a way to define the timeout related to $cloudConvert->jobs()->wait($job);

    opened by sdespont 1
  • Improve documentation

    Improve documentation

    Hi, I would really appreciate if you would:

    • include some error reporting/handling examples
    • give an example on how to list supported formats using this new library
    • give some info on what the methods return and how to tell if the actions were successful or not
    • give info on tasks names (accepted formats, expected to be unique or not?)
    • give an example on how to check for the status of a task
    opened by filerun 4
  • Puli Factory is not available

    Puli Factory is not available

    Hi, i am trying to use the library, but getting always the same error message:

    Exception has occurred. Http\Discovery\Exception\PuliUnavailableException: Puli Factory is not available

    I ran the command composer require cloudconvert/cloudconvert-php, and try to use the Jobs class, but it's not working here.

    Can someone help me?

    opened by RafaelAlbani 6
Releases(3.3.0)
Community-created, unofficial PHP SDK for the Skynet Decentralized Internet Network. siasky.net

Skynet PHP SDK This SDK is a community-created, unofficial SDK in PHP for the Skynet Decentralized Internet Network. It is taken as primarily a port f

Derrick Hammer 4 Dec 26, 2022
CPAY is a sdk that encapsulates the Orange Money api with an intuitive syntax allowing you to integrate the Orange Money payment into your PHP project.

CPAY CHOCO PAY is a sdk that encapsulates the Orange Money api with an intuitive syntax allowing you to integrate the Orange Money payment into your P

faso-dev 1 Oct 26, 2022
Laravel Integration for Switchover PHP SDK. Feature Toggle Management made easy.

Switchover Laravel Integration Switchover Switchover is a Software-As-A-Service for managing feature toggles (aka switches, flags or feature flips) in

Switchover 6 Nov 6, 2022
An unofficial PHP SDK for Deepgram's API.

An unofficial PHP SDK for Deepgram's audio transcription API. Getting Started Grab src/deepgram.php and include it in your project. Then: $deepgram =

Christopher Finke 1 May 3, 2022
A Simple Linode SDK built for Laravel with @JustSteveKing laravel-transporter package

linode client A Simple Linode client built for Laravel with @JustSteveKing laravel-transporter package Installation You can install the package via co

Samuel Mwangi 2 Dec 14, 2022
Empower your business to accept payments globally, earn rewards and invest in crypto with lazerpay laravel sdk in your laravel project.

Lazerpay Laravel Package pipedev/lazerpay is a laravel sdk package that access to laravel api Installation PHP 5.4+ and Composer are required. To get

Muritala David 24 Dec 10, 2022
The Current US Version of PHP-Nuke Evolution Xtreme v3.0.1b-beta often known as Nuke-Evolution Xtreme. This is a hardened version of PHP-Nuke and is secure and safe. We are currently porting Xtreme over to PHP 8.0.3

2021 Nightly Builds Repository PHP-Nuke Evolution Xtreme Developers TheGhost - Ernest Allen Buffington (Lead Developer) SeaBeast08 - Sebastian Scott B

Ernest Buffington 7 Aug 28, 2022
A sampling profiler for PHP written in PHP, which reads information about running PHP VM from outside of the process.

Reli Reli is a sampling profiler (or a VM state inspector) written in PHP. It can read information about running PHP script from outside of the proces

null 272 Dec 22, 2022
PHP Meminfo is a PHP extension that gives you insights on the PHP memory content

MEMINFO PHP Meminfo is a PHP extension that gives you insights on the PHP memory content. Its main goal is to help you understand memory leaks: by loo

Benoit Jacquemont 994 Dec 29, 2022
A sampling profiler for PHP written in PHP, which reads information about running PHP VM from outside of the process.

Reli Reli is a sampling profiler (or a VM state inspector) written in PHP. It can read information about running PHP script from outside of the proces

null 258 Sep 15, 2022
A multithreaded application server for PHP, written in PHP.

appserver.io, a PHP application server This is the main repository for the appserver.io project. What is appserver.io appserver.io is a multithreaded

appserver.io 951 Dec 25, 2022
Easy to use utility functions for everyday PHP projects. This is a port of the Lodash JS library to PHP

Lodash-PHP Lodash-PHP is a port of the Lodash JS library to PHP. It is a set of easy to use utility functions for everyday PHP projects. Lodash-PHP tr

Lodash PHP 474 Dec 31, 2022
A PHP 5.3+ and PHP 7.3 framework for OpenGraph Protocol

Opengraph Test with Atoum cd Opengraph/ curl -s https://getcomposer.org/installer | php php composer.phar install --dev ./vendor/atoum/atoum/bin/atoum

Axel Etcheverry 89 Dec 27, 2022
A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch screens with a resolution of 1024x600 connected to a Raspberry Pi.

EDStatusPanel A status monitor for Elite Dangerous, written in PHP. Designed for 1080p screens in the four-panel-view in panel.php, and for 7 inch scr

marcus-s 24 Oct 4, 2022
🐘 A probe program for PHP environment (一款精美的 PHP 探針, 又名X探針、劉海探針)

Simplified Chinese | 简体中文 Traditional Chinese(Taiwan) | 正體中文(臺灣) Traditional Chinese(Hong Kong) | 正體中文(香港) Japanese | 日本語 ?? X Prober This is a probe

Km.Van 1.2k Dec 28, 2022
PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP language

php-text-analysis PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP l

null 464 Dec 28, 2022
PHP generics written in PHP

PHP generics written in PHP Require PHP >= 7.4 Composer (PSR-4 Autoload) Table of contents How it works Quick start Example Features Tests How it work

Anton Sukhachev 173 Dec 30, 2022
PHP exercises from my course at ETEC and some of my own play-around with PHP

etec-php-exercises PHP exercises from my course at ETEC and some of my own play-around with PHP Translations: Português (BR) Projects Project Descript

Luis Felipe Santos do Nascimento 6 May 3, 2022
GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

GitHub action to set up PHP with extensions, php.ini configuration, coverage drivers, and various tools.

Shivam Mathur 2.4k Jan 6, 2023