Я будую додаток у PHP, використовуючи Zend Framework 1 та Doctrine2 як шар ORM. Все йде добре. Тепер я помітив, що і ZF1, і Doctrine2 мають і керуються своєю реалізацією кешування. Я оцінив і те, і інше, але в кожного є свої плюси і мінуси, жоден з них не виділяється на відмінність від інших для моїх простих потреб. Обидві бібліотеки також видаються написаними на відповідних інтерфейсах, а не на їх реалізацію.
Причини, чому я вважаю це проблемою, полягає в тому, що під час завантаження програми я повинен налаштувати два драйвери кешування - у кожного зі своїм синтаксисом. Невідповідність легко створюється таким чином, і він вважає неефективним встановити два з’єднання з кешбеком через це.
Я намагаюся визначити, який найкращий шлях вперед, і вітаю будь-яку інформацію, яку ви можете запропонувати.
Що я придумав до цього, це чотири варіанти:
- Нічого не робіть, прийміть, що є два класи, що пропонують функцію кешування.
- Створіть клас Facade, щоб приклеїти інтерфейс Zend до кешування програми Doctrine.
- Варіант 2, навпаки - створити Фасад для відображення інтерфейсу доктрини на бекенді Zend Framework.
- Використовуйте успадкування кількох інтерфейсів, щоб створити один інтерфейс, щоб керувати ними всіма, і моліться, щоб не було перекриттів (тобто: якщо в обох є метод "збереження", їм потрібно буде приймати параметри в одному порядку через PHP відсутність належного поліморфізму).
Який варіант найкращий, чи є варіант «Нічого з перерахованого вище», про який я не знаю?