Menginstal paket Laravel NextPDF
Sekilas
Bagian berjudul “Sekilas”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.
Pemasangan
Bagian berjudul “Pemasangan”composer require nextpdf/laravelPaket ini mendeklarasikan batasan berikut di dalam composer.json-nya:
| Persyaratan | Batasan |
|---|---|
| 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).
Ikhtisar konseptual
Bagian berjudul “Ikhtisar konseptual”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:
{ "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).
Contoh kode — Mulai cepat
Bagian berjudul “Contoh kode — Mulai cepat”Gunakan tag nextpdf-config untuk memublikasikan berkas konfigurasi. Nama tag ini didefinisikan di NextPdfServiceProvider::boot().
php artisan vendor:publish --tag=nextpdf-configPerintah 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:
php artisan package:discover --ansiContoh kode — Produksi
Bagian berjudul “Contoh kode — Produksi”Sematkan batasan versi untuk deployment yang dapat direproduksi. Nonaktifkan penemuan otomatis secara eksplisit hanya jika Anda mendaftarkan provider sendiri:
{ "extra": { "laravel": { "dont-discover": [ "nextpdf/laravel" ] } }}Saat penemuan otomatis dinonaktifkan, daftarkan provider sendiri di bootstrap/providers.php:
<?php
declare(strict_types=1);
return [ App\Providers\AppServiceProvider::class, NextPDF\Laravel\NextPdfServiceProvider::class,];Ekstensi opsional
Bagian berjudul “Ekstensi opsional”Paket ini mendaftarkan paket pendamping opsional di bawah suggest di dalam composer.json-nya. Paket ini mendeteksi paket pendamping yang terpasang saat runtime:
| Paket | Efek saat terpasang | Titik deteksi |
|---|---|---|
nextpdf/artisan | Konfigurasi renderer HTML (Hypertext Markup Language) berbasis Chrome DevTools Protocol (CDP) diterapkan pada binding dokumen saat kelas factory Chrome tersedia | NextPdfServiceProvider::register() memeriksa keberadaan kelas factory peramban Chrome |
nextpdf/premium | Kunci container yang ada akan menyelesaikan implementasi kontrak penandatanganan PDF Advanced Electronic Signatures (PAdES B-B), pengarsipan PDF/A, dan e-invoice | diselesaikan secara lazy saat resolusi container pertama |
Instal ekstensi dengan cara yang sama:
composer require nextpdf/artisanTidak diperlukan wiring tambahan. Provider mendeteksi ekstensi pada siklus pendaftaran berikutnya.
Kasus tepi & jebakan
Bagian berjudul “Kasus tepi & jebakan”- Publikasi bersifat idempoten. Proses ini tidak menimpa
config/nextpdf.phpyang sudah ada. Tambahkan--forcesaat Anda memang ingin menimpanya dengan sengaja. - Provider ini bersifat deferred, jadi keberhasilan
php artisan package:discoversudah cukup untuk memastikan paket terdaftar. Binding itu sendiri baru muncul pada resolusi pertama. - Paket ini mendukung
nextpdf/corepada kedua lini mayor^3.0dan^5.2. Sesuaikan batasan core dengan lini yang disematkan aplikasi Anda. API adapter Laravel sama pada keduanya. - Badge README dan
composer.jsonsama-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 (lihatCHANGELOG.md).
Kinerja
Bagian berjudul “Kinerja”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.
Catatan keamanan
Bagian berjudul “Catatan keamanan”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.
Kesesuaian
Bagian berjudul “Kesesuaian”| Klaim | Sumber | Klausa | reference_id |
|---|---|---|---|
| Prefiks PSR-4 dipetakan ke direktori dasar | PSR-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).
Konteks komersial
Bagian berjudul “Konteks komersial”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.
Lihat juga
Bagian berjudul “Lihat juga”- /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