Menginstal bundle Symfony NextPDF
Sekilas
Bagian berjudul “Sekilas”Instal bundle dengan Composer. Jika aplikasi Anda menggunakan Symfony Flex, bundle akan mendaftar otomatis. Tanpa Flex, daftarkan satu kali di config/bundles.php.
Persyaratan
Bagian berjudul “Persyaratan”File composer.json pada bundle mendefinisikan batasan berikut.
| Dependensi | Batasan |
|---|---|
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.
Paket opsional
Bagian berjudul “Paket opsional”File composer.json pada bundle mendeklarasikan paket-paket berikut di bawah suggest. Tambahkan paket-paket ini saat Anda membutuhkan perilaku yang disediakannya:
| Paket | Menambahkan |
|---|---|
nextpdf/artisan | Perenderan HTML melalui Chrome CDP, terdeteksi otomatis saat kompilasi |
nextpdf/premium | Pengarsipan PDF/A dan penandatanganan digital (menginstal tingkat Pro), terdeteksi otomatis saat kompilasi |
symfony/messenger | Pembuatan PDF secara asinkron melalui handler Messenger |
Memasang dengan Composer
Bagian berjudul “Memasang dengan Composer”composer require nextpdf/symfonyBundle 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.
Mendaftarkan bundle
Bagian berjudul “Mendaftarkan bundle”Symfony Flex (disarankan)
Bagian berjudul “Symfony Flex (disarankan)”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).
Pendaftaran manual (tanpa Flex)
Bagian berjudul “Pendaftaran manual (tanpa Flex)”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.
Menyediakan berkas konfigurasi
Bagian berjudul “Menyediakan berkas konfigurasi”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.
Memverifikasi pemasangan
Bagian berjudul “Memverifikasi pemasangan”Pastikan kontainer dapat melihat layanan-layanan dari bundle:
php bin/console debug:container nextpdfAnda akan melihat layanan-layanan yang mencakup alias nextpdf.document dan NextPDF\Symfony\Service\PdfFactory. Untuk memeriksa konfigurasi yang telah diselesaikan, jalankan:
php bin/console debug:config nextpdfPerintah ini mencetak pohon konfigurasi gabungan: pengaturan Anda beserta nilai standar.
Kasus khusus dan jebakan
Bagian berjudul “Kasus khusus dan jebakan”- 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 dicomposer.jsonaplikasi Anda jika Anda membutuhkan versi engine yang deterministik. - Pelindung untuk ekstensi yang hilang — jika
php bin/consolegagal saat boot dengan pesan tentangext-mbstringatauext-zlib, aktifkan ekstensi yang disebutkan diphp.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.
Kesesuaian
Bagian berjudul “Kesesuaian”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.
| Spesifikasi | Klausa | reference_id | Klaim |
|---|---|---|---|
| PSR-4 | psr_4_autoload#x1.x2.p5 | Pemetaan prefiks namespace ke direktori oleh autoloader |
Lihat juga
Bagian berjudul “Lihat juga”- /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.