Saya sedang membangun aplikasi dalam PHP, menggunakan Zend Framework 1 dan Doctrine2 sebagai lapisan ORM. Semua berjalan baik. Sekarang, saya kebetulan melihat bahwa baik ZF1 dan Doctrine2 datang dengan, dan bergantung pada, implementasi caching mereka sendiri. Saya telah mengevaluasi keduanya, dan sementara masing-masing memiliki pro dan kontra, tidak satu pun dari mereka menonjol sebagai yang lain untuk kebutuhan sederhana saya. Kedua perpustakaan juga tampaknya ditulis terhadap antarmuka masing-masing, bukan implementasinya.
Alasan mengapa saya merasa ini adalah masalah adalah bahwa selama bootstrap aplikasi saya, saya harus mengkonfigurasi dua driver caching - masing-masing dengan sintaksnya sendiri. Ketidakcocokan mudah dibuat dengan cara ini, dan rasanya tidak efisien untuk mengatur dua koneksi ke backend caching karena ini.
Saya mencoba menentukan apa jalan terbaik ke depan, dan akan menyambut wawasan apa pun yang Anda bisa tawarkan.
Apa yang saya pikirkan sejauh ini adalah empat opsi:
- Jangan lakukan apa-apa, terima bahwa ada dua kelas yang menawarkan fungsionalitas caching.
- Buat kelas Facade untuk menempelkan antarmuka Zend ke implementasi caching Doctrine.
- Opsi 2, sebaliknya - buat Facade untuk memetakan antarmuka Doctrine pada backend Zend Framework.
- Gunakan multiple-interface-inheritance untuk membuat satu antarmuka untuk mengatur semuanya, dan berdoa agar tidak ada tumpang tindih (yaitu: jika keduanya memiliki metode "save", mereka harus menerima params dalam urutan yang sama karena PHP kurangnya polimorfisme yang tepat).
Opsi apa yang terbaik, atau adakah varian "Tidak satu pun di atas" yang tidak saya sadari?