Zend Framework adalah kerangka pengembangan PHP open source yang sepenuhnya didasarkan pada PHP5 yang dikembangkan oleh Perusahaan Zend. Zend Framework dapat digunakan untuk mengembangkan program dan layanan Web. Ia menggunakan pola arsitektur MVC (Model-View-Controller) untuk memisahkan bagian-bagian aplikasi yang berbeda memfasilitasi pengembangan dan pemeliharaan program.
ZF2 bukan hanya pembaruan tambal sulam seperti kerangka kerja lainnya. Sebaliknya, ZF2 sepenuhnya menulis ulang semua kode ZF1. Slogan utamanya adalah "kinerja tinggi".
Mari kita lihat fitur-fitur baru apa saja yang dihadirkan ZF2:
1. Modularisasi (ModuleManager)
Dibandingkan dengan ZF1, ZF2 secara asli mendukung konsep modul. Program PHP pihak ketiga mana pun dapat diubah menjadi modul Zend asalkan mengikuti standar pengkodean dan struktur kode Zend. Saat ini, sejumlah modul eksperimental telah dirilis (lihat Modul ZF2). Ada banyak proyek bagus seperti Doctrine ORM.
Dapat diperkirakan bahwa seiring dengan semakin matangnya ZF2, semakin banyak modul opsional yang akan bermunculan. Ada kemungkinan bahwa pengembangan proyek di masa depan berdasarkan ZF2 akan semudah dan sesederhana blok bangunan.
2. Didorong oleh peristiwa (EventManager)
Dalam program tradisional, kode dieksekusi dalam urutan linier, sehingga seringkali sulit untuk memisahkan beberapa fungsi ke dalam komponen atau modul selama pengembangan.
Event-driven, atau hook, mengubah cara program biasa dijalankan secara efisien. Setelah menerapkan event-driven, program akan berjalan dengan cara seperti "registered event" => "triggered event", yang dapat dijalankan. tanpa mempengaruhi Dengan kode program asli, mudah untuk menambahkan logika bisnis baru di lokasi mana pun, membuat pengembangan proyek menjadi sangat fleksibel.
3. Manajer Layanan
Konsep manajer layanan berasal dari ide pemrograman “Pola pencari lokasi layanan”. Ide ini menganjurkan untuk mengekstraksi setiap fungsi independen dalam program sebagai "layanan". Setiap layanan dapat dibangunkan secara independen. Hanya ketika layanan tersebut dipanggil, program terkait layanan akan dimulai.
Inilah rahasia peningkatan kinerja ZF2. Ide ServiceLocator tercermin di mana-mana dalam proses startup MVC ZF2. Panggilan ke modul fungsi sangat "pelit", yang tentunya akan menjadi kejutan besar bagi pengembang yang sebelumnya mengalami masalah dengan penampilan Zend.
4. Injeksi Ketergantungan
Injeksi ketergantungan banyak digunakan dalam kerangka Java mainstream dan dapat secara efektif memisahkan aplikasi berskala besar. Pengenalan Di ke ZF2 telah melalui pertimbangan dan trade-off berulang kali. Bahkan setelah memasuki tahap beta, Di masih digunakan sebagai solusi implementasi dasar untuk ZF2, dan seluruh konfigurasi Mvc didasarkan pada Di. Pada akhirnya, untuk menghindari terjerumus ke dalam rawa pemrograman metadata (Metaprogramming) yang mungkin disebabkan oleh Di, Di hanya digunakan sebagai implementasi terbawah ZF2, dan ServiceManager ditambahkan ke lapisan atas. Pengembang biasa tidak perlu terpapar ke level Di saat menggunakan ZF2. Namun, hal ini tidak menghalangi DI untuk hadir dan berfungsi sebagai komponen PHP yang sangat baik.
5. Pemrograman sosial
Kode ZF2 sepenuhnya dihosting di Github. Dengan desain Github yang luar biasa, siapa pun dapat dengan mudah berpartisipasi dalam pembangunan proyek ZF2 melalui fork, dan bahkan mengirimkan fungsi modul baru. Penulis AlloVince juga membantu tim Zend memperbaiki beberapa bug dan menemukan bahwa tim Zend merespons dengan sangat cepat (tidak lebih dari 24 jam) dan meluangkan waktu untuk menjawab masukan dengan serius. Oleh karena itu, berpartisipasi dalam proyek ZF2 adalah pilihan yang baik untuk berpartisipasi dalam proyek sumber terbuka PHP.