Lewati ke konten

Menginstal bundle Symfony NextPDF

Instal bundle dengan Composer. Jika aplikasi Anda menggunakan Symfony Flex, bundle akan mendaftar otomatis. Tanpa Flex, daftarkan satu kali di config/bundles.php.

File composer.json pada bundle mendefinisikan batasan berikut.

DependensiBatasan
php>=8.4 <9.0
nextpdf/core^3.0 || ^5.2
symfony/framework-bundle^7.2
symfony/dependency-injection^7.2
symfony/config^7.2
symfony/http-foundation^7.2
psr/log^3.0

Bundle juga memeriksa dua ekstensi PHP saat kontainer dibangun: ext-mbstring dan ext-zlib. Setiap runtime PHP yang didukung mengaktifkan keduanya. Jika salah satu ekstensi tidak tersedia, mekanisme pelindung langsung gagal dengan pesan yang jelas.

File composer.json pada bundle mendeklarasikan paket-paket berikut di bawah suggest. Tambahkan paket-paket ini saat Anda membutuhkan perilaku yang disediakannya:

PaketMenambahkan
nextpdf/artisanPerenderan HTML melalui Chrome CDP, terdeteksi otomatis saat kompilasi
nextpdf/premiumPengarsipan PDF/A dan penandatanganan digital (menginstal tingkat Pro), terdeteksi otomatis saat kompilasi
symfony/messengerPembuatan PDF secara asinkron melalui handler Messenger
Terminal window
composer require nextpdf/symfony

Bundle dimuat otomatis di bawah prefiks PHP Standard Recommendation 4 (PSR-4) NextPDF\Symfony\, yang dipetakan ke src/Symfony/. Pemetaan ini dideklarasikan di composer.jsonautoload.psr-4. Autoloader yang dihasilkan Composer memetakan prefiks namespace ke direktori dasar tersebut, sebagaimana didefinisikan PSR-4 §2.

Bundle menyertakan instruksi pendaftaran otomatis di dalam composer.json:

{
"extra": {
"symfony": {
"bundles": {
"NextPDF\\Symfony\\NextPdfBundle": "all"
}
}
}
}

Pada aplikasi dengan Flex aktif, entri ini menambahkan bundle ke config/bundles.php untuk setiap lingkungan (all). Anda tidak perlu menyunting berkas itu secara manual. Untuk memahami model pendaftarannya, lihat dokumentasi resmi bundle Symfony (https://symfony.com/doc/current/bundles.html).

Jika aplikasi Anda tidak menggunakan Symfony Flex, tambahkan bundle ke config/bundles.php secara manual:

return [
// ... other bundles
NextPDF\Symfony\NextPdfBundle::class => ['all' => true],
];

Kelas bundle adalah NextPDF\Symfony\NextPdfBundle. Kelas ini memperluas kelas dasar Symfony Symfony\Component\HttpKernel\Bundle\Bundle. Metode getPath() pada bundle mengembalikan root paket. Metode build() pada bundle mendaftarkan compiler pass OptionalExtensionPass.

Alias konfigurasi bundle adalah nextpdf. Buat config/packages/nextpdf.yaml. Setelah dipublikasikan, sebuah resep Flex akan menambahkan salinan standar di lokasi ini untuk Anda. Berkas minimal yang sepenuhnya mengandalkan nilai bawaan tampak seperti ini:

nextpdf: ~

Setiap kunci memiliki nilai standar, sehingga konfigurasi kosong tetap valid. Halaman /integrations/symfony/configuration/ mendokumentasikan seluruh pohon konfigurasi.

Pastikan kontainer dapat melihat layanan-layanan dari bundle:

Terminal window
php bin/console debug:container nextpdf

Anda akan melihat layanan-layanan yang mencakup alias nextpdf.document dan NextPDF\Symfony\Service\PdfFactory. Untuk memeriksa konfigurasi yang telah diselesaikan, jalankan:

Terminal window
php bin/console debug:config nextpdf

Perintah ini mencetak pohon konfigurasi gabungan: pengaturan Anda beserta nilai standar.

  • Rentang batasan Core — bundle menerima nextpdf/core^3.0 || ^5.2. Composer menentukan versi yang memenuhi bagian lain dari graf dependensi Anda. Patok hanya satu versi mayor di composer.json aplikasi Anda jika Anda membutuhkan versi engine yang deterministik.
  • Pelindung untuk ekstensi yang hilang — jika php bin/console gagal saat boot dengan pesan tentang ext-mbstring atau ext-zlib, aktifkan ekstensi yang disebutkan di php.ini. Perilaku gagal-seketika ini disengaja, bukan cacat pada bundle.
  • Flex tidak mendaftarkan bundle — bersihkan cache Composer lalu instal ulang. Jika Anda tidak menggunakan Flex, ikuti langkah manual untuk config/bundles.php.

Setiap baris adalah klaim normatif yang dibuat pada halaman ini, yang dipatok ke reference_id 64-heksadesimal lengkap dari korpus SDO yang dipagari. Provenansnya berada di _sidecars/rag-citations.yaml. Provenans tersebut mencakup manifes korpus dan transpor pengambilannya.

SpesifikasiKlausareference_idKlaim
PSR-4psr_4_autoload#x1.x2.p5Pemetaan prefiks namespace ke direktori oleh autoloader
  • /integrations/symfony/overview/ — apa yang disediakan bundle.
  • /integrations/symfony/configuration/ — pohon konfigurasi lengkap dan tabel layanan.
  • /integrations/symfony/quickstart/ — controller pertama yang dapat dijalankan.
  • /integrations/symfony/boot-and-discovery/ — urutan penemuan dan boot secara mendalam.