Lewati ke konten

Menginstal paket Laravel NextPDF

Instal nextpdf/laravel dengan Composer. Penemuan otomatis (auto-discovery) Laravel mendaftarkan service provider untuk Anda. Publikasikan berkas konfigurasi saat Anda ingin menyuntingnya. Paket ini otomatis mendeteksi ekstensi NextPDF opsional.

Terminal window
composer require nextpdf/laravel

Paket ini mendeklarasikan batasan berikut di dalam composer.json-nya:

PersyaratanBatasan
PHP>=8.4 <9.0
laravel/framework^12.0
nextpdf/core^3.0 || ^5.2
psr/http-client^1.0

Paket ini melakukan autoload melalui satu pemetaan PHP Standard Recommendation 4 (PSR-4). Prefiks NextPDF\Laravel\ dipetakan ke src/Laravel/. Ini mengikuti aturan pemetaan prefiks ke direktori dasar PSR-4 (PSR-4 §3).

Setelah Anda menjalankan composer require, mekanisme penemuan otomatis paket Laravel membaca blok extra.laravel di dalam composer.json paket ini. Selanjutnya, mekanisme tersebut mendaftarkan provider dan alias facade untuk Anda, sehingga Anda tidak perlu menyunting config/app.php secara manual. Blok tersebut terlihat seperti ini:

resource: composer.json (extra.laravel)
{
"extra": {
"laravel": {
"providers": [
"NextPDF\\Laravel\\NextPdfServiceProvider"
],
"aliases": {
"Pdf": "NextPDF\\Laravel\\Facades\\Pdf"
}
}
}
}

Dokumentasi paket Laravel menjelaskan perilaku ini. Larik extra.laravel.providers mendaftarkan service provider secara otomatis, dan larik extra.laravel.aliases mendaftarkan alias facade secara otomatis (panduan pengembangan paket Laravel 12, https://laravel.com/docs/12.x/packages, diakses 2026-05-18).

Gunakan tag nextpdf-config untuk memublikasikan berkas konfigurasi. Nama tag ini didefinisikan di NextPdfServiceProvider::boot().

Terminal window
php artisan vendor:publish --tag=nextpdf-config

Perintah ini menulis config/nextpdf.php ke aplikasi Anda. Provider juga menggabungkan konfigurasi bawaan paket di bawah kunci nextpdf selama register(), sehingga paket tetap berfungsi sebelum Anda memublikasikannya. Publikasi membuat berkas tersebut dapat disunting di aplikasi Anda.

Pastikan Laravel telah menemukan provider:

Terminal window
php artisan package:discover --ansi

Sematkan batasan versi untuk deployment yang dapat direproduksi. Nonaktifkan penemuan otomatis secara eksplisit hanya jika Anda mendaftarkan provider sendiri:

resource: opt-out pattern (Laravel 12 packages guide)
{
"extra": {
"laravel": {
"dont-discover": [
"nextpdf/laravel"
]
}
}
}

Saat penemuan otomatis dinonaktifkan, daftarkan provider sendiri di bootstrap/providers.php:

resource: bootstrap/providers.php (manual registration)
<?php
declare(strict_types=1);
return [
App\Providers\AppServiceProvider::class,
NextPDF\Laravel\NextPdfServiceProvider::class,
];

Paket ini mendaftarkan paket pendamping opsional di bawah suggest di dalam composer.json-nya. Paket ini mendeteksi paket pendamping yang terpasang saat runtime:

PaketEfek saat terpasangTitik deteksi
nextpdf/artisanKonfigurasi renderer HTML (Hypertext Markup Language) berbasis Chrome DevTools Protocol (CDP) diterapkan pada binding dokumen saat kelas factory Chrome tersediaNextPdfServiceProvider::register() memeriksa keberadaan kelas factory peramban Chrome
nextpdf/premiumKunci container yang ada akan menyelesaikan implementasi kontrak penandatanganan PDF Advanced Electronic Signatures (PAdES B-B), pengarsipan PDF/A, dan e-invoicediselesaikan secara lazy saat resolusi container pertama

Instal ekstensi dengan cara yang sama:

Terminal window
composer require nextpdf/artisan

Tidak diperlukan wiring tambahan. Provider mendeteksi ekstensi pada siklus pendaftaran berikutnya.

  • Publikasi bersifat idempoten. Proses ini tidak menimpa config/nextpdf.php yang sudah ada. Tambahkan --force saat Anda memang ingin menimpanya dengan sengaja.
  • Provider ini bersifat deferred, jadi keberhasilan php artisan package:discover sudah cukup untuk memastikan paket terdaftar. Binding itu sendiri baru muncul pada resolusi pertama.
  • Paket ini mendukung nextpdf/core pada kedua lini mayor ^3.0 dan ^5.2. Sesuaikan batasan core dengan lini yang disematkan aplikasi Anda. API adapter Laravel sama pada keduanya.
  • Badge README dan composer.json sama-sama menyatakan Apache-2.0. Lisensi paket ini diubah dari LGPL-3.0-or-later. Versi bertanda (tagged) sebelum migrasi tetap berada di bawah lisensi sebelumnya (lihat CHANGELOG.md).

Resolusi nextpdf/core mendominasi biaya composer require. Pendaftaran provider tidak menambahkan biaya boot yang terukur karena semua binding berupa closure yang deferred. Lihat /integrations/laravel/boot-and-discovery/ untuk biaya konstruksi pada resolusi pertama.

Instal dari paket Packagist kanonis nextpdf/laravel. Paket ini menyertakan header REUSE Software Package Data Exchange (SPDX) dan berkas NOTICE Apache-2.0. Sematkan batasan di composer.json dan commit composer.lock agar worker yang dideploy menyelesaikan pohon dependensi yang terverifikasi.

KlaimSumberKlausareference_id
Prefiks PSR-4 dipetakan ke direktori dasarPSR-4 Autoloader§3

Nama kunci penemuan otomatis Laravel diverifikasi terhadap dokumentasi resmi pengembangan paket Laravel 12 (https://laravel.com/docs/12.x/packages, diakses 2026-05-18).

nextpdf/premium menambahkan implementasi penandatanganan, PDF/A, dan e-invoice sebagai kapabilitas Enterprise opsional. Anda dapat mengadopsinya tanpa mengubah paket Core yang didokumentasikan di sini. Lihat https://nextpdf.dev/get-license/?intent=laravel-signing.

  • /integrations/laravel/overview/ — arsitektur paket dan tabel binding
  • /integrations/laravel/quickstart/ — controller pertama yang dapat dijalankan
  • /integrations/laravel/configuration/ — setiap kunci konfigurasi dijelaskan
  • /integrations/laravel/boot-and-discovery/ — detail internal penemuan dan masa hidup binding