Tôi đang xây dựng một ứng dụng trong PHP, sử dụng Zend Framework 1 và Doctrine2 làm lớp ORM. Tất cả đang diễn ra tốt đẹp. Bây giờ, tôi tình cờ nhận thấy rằng cả ZF1 và Doctrine2 đều đi kèm và dựa vào việc thực hiện bộ nhớ đệm của riêng họ. Tôi đã đánh giá cả hai, và trong khi mỗi người đều có những ưu và nhược điểm riêng, không ai trong số họ nổi bật hơn người khác vì những nhu cầu đơn giản của tôi. Cả hai thư viện dường như cũng được viết chống lại các giao diện tương ứng của họ, chứ không phải các triển khai của họ.
Lý do tại sao tôi cảm thấy đây là một vấn đề là trong quá trình khởi động ứng dụng của tôi, tôi phải cấu hình hai trình điều khiển bộ đệm - mỗi trình điều khiển có cú pháp riêng. Một sự không phù hợp dễ dàng được tạo ra theo cách này và cảm thấy không hiệu quả khi thiết lập hai kết nối đến phụ trợ bộ đệm vì điều này.
Tôi đang cố gắng xác định cách tốt nhất phía trước là gì và sẽ hoan nghênh mọi hiểu biết mà bạn có thể cung cấp.
Những gì tôi đã nghĩ cho đến nay là bốn lựa chọn:
- Không làm gì cả, chấp nhận rằng hai lớp cung cấp chức năng lưu trữ có mặt.
- Tạo một lớp Facade để gắn giao diện của Zend vào triển khai bộ đệm của Doctrine.
- Tùy chọn 2, theo cách khác - tạo Mặt tiền để ánh xạ giao diện của Doctrine trên phụ trợ Zend Framework.
- Sử dụng kế thừa nhiều giao diện để tạo một giao diện để thống trị tất cả chúng và cầu nguyện rằng không có bất kỳ sự chồng chéo nào (nghĩa là: nếu cả hai đều có phương thức "lưu", chúng sẽ cần chấp nhận các tham số theo cùng một thứ tự do PHP thiếu đa hình thích hợp).
Lựa chọn nào là tốt nhất, hoặc có một biến thể "Không có ở trên" mà tôi không biết?