pdftract/sdk/php/src/Pdftract/PdftractException.php
jedarden 246befd8d1 feat(pdftract-2m3gl): implement PHP SDK with Packagist publishing
- Add jedarden/pdftract Composer package (sdk/php/)
- Implement Client.php with proc_open subprocess execution
- Add PSR-3 LoggerInterface integration (defaults to NullLogger)
- Add 9 contract methods: extract, extractText, extractMarkdown, extractStream, search, getMetadata, hash, classify, verifyReceipt
- Add readonly model classes: Document, Page, Metadata, Fingerprint, Classification, Match, Receipt
- Add exception classes: PdftractException base + 8 subclasses
- Add PHPUnit conformance test suite
- Add phpunit.xml configuration
- Add composer.json with jedarden/pdftract package name
- Add .ci/argo-workflows/pdftract-php-publish.yaml (Packagist auto-discovery from git tags)

Also includes Ruby SDK scaffold from parallel workflow.

Closes pdftract-2m3gl
2026-06-01 10:27:03 -04:00

36 lines
783 B
PHP

<?php
declare(strict_types=1);
namespace Jedarden\Pdftract;
/**
* Exception thrown when pdftract command fails
*/
class PdftractException extends \Exception
{
private int $exitCode;
/**
* Constructor
*
* @param string $message Error message
* @param int $exitCode Process exit code
* @param \Throwable|null $previous Previous exception
*/
public function __construct(string $message = "", int $exitCode = 0, ?\Throwable $previous = null)
{
parent::__construct($message, $exitCode, $previous);
$this->exitCode = $exitCode;
}
/**
* Get the exit code from the failed process
*
* @return int Exit code
*/
public function getExitCode(): int
{
return $this->exitCode;
}
}