PHP code example of laulamanapps / document-signer-laravel
1. Go to this page and download the library: Download laulamanapps/document-signer-laravel library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
laulamanapps / document-signer-laravel example snippets
use LauLamanApps\DocumentSigner\Laravel\Facades\DocumentSigner;
use LauLamanApps\DocumentSigner\Sdk\Document\Document;
use LauLamanApps\DocumentSigner\Sdk\Envelope\Envelope;
use LauLamanApps\DocumentSigner\Sdk\Signer\Signer;
$receipt = DocumentSigner::send(new Envelope(
name: 'NDA',
documents: [new Document(
id: 'nda',
name: 'NDA',
html: '<p>{[signature:counterparty:sig]} on {[date:counterparty:signdate]}</p>',
)],
signers: [new Signer(key: 'counterparty', name: 'Jane Doe', email: '[email protected]')],
emailSubject: 'Please sign the NDA',
));
// Switch driver at runtime:
$receipt = DocumentSigner::driver('docusign')->send($envelope);
use LauLamanApps\DocumentSigner\Laravel\DocumentSignerManager;
public function __construct(private DocumentSignerManager $signer) {}
use LauLamanApps\DocumentSigner\Sdk\Pdf\PdfRenderer;
use App\Pdf\GotenbergRenderer;
$this->app->bind(PdfRenderer::class, GotenbergRenderer::class);
use LauLamanApps\DocumentSigner\Laravel\Events\DocumentSignerWebhookReceived;
final class HandleSignerWebhook
{
public function handle(DocumentSignerWebhookReceived $event): void
{
// Provider-agnostic — same code serves DocuSign and ValidSign once
// both enums ship. Null-safe: unknown tokens fall through to default.
match (true) {
$event->event?->isCompleted() => $this->onCompleted($event->payload),
$event->event?->isDeclined() => $this->onDeclined($event->payload),
$event->event?->isFailure() => $this->pageOncall($event->payload),
default => null,
};
}
}
use LauLamanApps\DocumentSigner\Laravel\Webhook\EventTranslator;
use LauLamanApps\DocumentSigner\ValidSign\Webhook\EventType;
public function handle(
DocumentSignerWebhookReceived $event,
EventTranslator $labels,
): void {
if ($event->event === null) {
return;
}
// "Package complete" in en, "Pakket voltooid" in nl.
Log::info($labels->label($event->event));
// Or force a locale:
$subject = $labels->label($event->event, locale: 'nl');
}
use LauLamanApps\DocumentSigner\Laravel\Facades\DocumentSigner;
use LauLamanApps\DocumentSigner\Sdk\Envelope\EnvelopeStatus;
use LauLamanApps\DocumentSigner\Sdk\Provider\EnvelopeReceipt;
use LauLamanApps\DocumentSigner\Sdk\Provider\SignatureProvider;
DocumentSigner::set('validsign', new class implements SignatureProvider {
public function send($envelope): EnvelopeReceipt {
return new EnvelopeReceipt(
provider: 'validsign',
providerEnvelopeId: 'test-id',
status: EnvelopeStatus::Sent,
);
}
public function getStatus(string $id): EnvelopeStatus { return EnvelopeStatus::Completed; }
public function downloadSigned(string $id): \SplFileInfo { return new \SplFileInfo('/dev/null'); }
public function downloadSignedDocument(string $id, string $documentId): \SplFileInfo { return new \SplFileInfo('/dev/null'); }
public function hasAuditTrail(): bool { return true; }
public function downloadAudit(string $id): \SplFileInfo { return new \SplFileInfo('/dev/null'); }
public function getFieldValues(string $id): array { return []; }
public function cancel(string $id, ?string $reason = null): void {}
});