Deskripsi Closure adalah perpustakaan yang bertujuan untuk mengatasi keterbatasan PHP mengenai serialisasi penutupan dengan menyediakan wrapper yang akan membuat semua penutupan dapat diserialkan.
Fitur utama perpustakaan:
Buat serial penutupan apa pun
Membuat serial objek sewenang-wenang
Tidak menggunakan eval
untuk penutupan serialisasi atau unserialisasi
Bekerja dengan versi PHP apa pun yang memiliki dukungan untuk penutupan
Mendukung sintaks PHP 7
Menangani semua variabel yang direferensikan/diimpor dalam use()
dan secara otomatis membungkus semua penutupan yang direferensikan/diimpor untuk serialisasi yang tepat
Menangani penutupan rekursif
Menangani konstanta ajaib seperti __FILE__
, __DIR__
, __LINE__
, __NAMESPACE__
, __CLASS__
, __TRAIT__
, __METHOD__
dan __FUNCTION__
.
Secara otomatis menyelesaikan semua nama kelas, nama fungsi, dan nama konstanta yang digunakan di dalam penutupan
Lacak sumber penutupan dengan menggunakan direktif #trackme
Parser sederhana dan sangat cepat
Kesalahan atau pengecualian apa pun, yang mungkin terjadi saat menjalankan penutupan tidak serial, dapat ditangkap dan ditangani dengan baik
Anda dapat membuat serial/membatalkan serialisasi penutupan apa pun dalam waktu yang tidak terbatas, bahkan penutupan yang sebelumnya tidak serial (hal ini dimungkinkan karena eval()
tidak digunakan untuk unserialisasi)
Menangani penutupan statis
Mendukung penutupan yang ditandatangani secara kriptografis
Menyediakan reflektor yang dapat memberi Anda informasi tentang penutupan serial
Menyediakan penganalisis untuk perpustakaan SuperClosure
Secara otomatis mendeteksi kapan cakupan dan/atau objek terikat dari suatu penutupan perlu diserialkan agar penutupan dapat berfungsi setelah deserialisasi
Dokumentasi lengkap untuk perpustakaan ini dapat ditemukan di sini.
Deskripsi Closure dilisensikan di bawah Lisensi MIT (MIT).
PHP^5.4 || ^7.0 || ^8.0
Deskripsi Closure tersedia di Packagist dan dapat diinstal dari antarmuka baris perintah dengan menggunakan Composer.
komposer memerlukan opis/penutupan
Atau Anda bisa langsung mereferensikannya ke file composer.json
Anda sebagai ketergantungan
{"wajib": {"opis/closure": "^3.5"} }
Jika proyek Anda perlu mendukung PHP 5.3, Anda dapat terus menggunakan Opis Closure versi 2.x
Jika tidak, dengan asumsi Anda tidak menggunakan salah satu kelas atau fitur yang dihapus/difaktorkan ulang (lihat CHANGELOG), bermigrasi ke versi 3.x
hanyalah masalah memperbarui file composer.json
Anda.
Penjelasan Penutupan mengikuti spesifikasi versi semantik.
Kami telah menambahkan fitur ini agar dapat mendukung serialisasi objek terikat penutupan. Implementasinya masih jauh dari sempurna, dan sangat sulit untuk membuatnya berjalan sempurna. Kami akan mencoba memperbaikinya, namun kami tidak dapat menjamin apa pun. Jadi saran kami mengenai fungsi OpisClosureserialize|unserialize
adalah menggunakannya dengan hati-hati.