Zend Framework 1과 Doctrine2를 ORM 레이어로 사용하여 PHP로 응용 프로그램을 작성하고 있습니다. 모든 것이 잘 진행되고 있습니다. 이제 ZF1과 Doctrine2는 모두 자체 캐싱 구현과 함께 제공됩니다. 나는 두 가지 모두를 평가했으며, 각각 고유의 장단점이 있지만, 내 단순한 요구를 위해 다른 것보다 우월하지는 않습니다. 두 라이브러리 모두 구현이 아닌 해당 인터페이스에 대해 작성된 것으로 보입니다.
이것이 문제라고 생각하는 이유는 응용 프로그램을 부트 스트랩하는 동안 각각 고유 한 구문으로 두 개의 캐싱 드라이버를 구성해야하기 때문입니다. 이러한 방식으로 불일치가 쉽게 발생하므로 이로 인해 캐싱 백엔드에 두 개의 연결을 설정하는 것이 비효율적입니다.
최선의 방법이 무엇인지 파악하려고 노력하고 있으며 귀하가 제공 할 수있는 통찰력을 환영합니다.
지금까지 내가 생각한 것은 네 가지 옵션입니다.
- 캐싱 기능을 제공하는 두 개의 클래스가 있음을 인정하십시오.
- 젠드의 인터페이스를 Doctrine의 캐싱 구현에 적용하는 Facade 클래스를 만듭니다.
- 다른 방법으로 옵션 2-Zend Framework 백엔드에 Doctrine의 인터페이스를 매핑하는 Facade를 만듭니다.
- 다중 인터페이스 상속을 사용하여 하나의 인터페이스를 만들어 모든 인터페이스를 지배하고 겹치지 않도록기도하십시오 (예 : 둘 다 "저장"방법이있는 경우 PHP로 인해 동일한 순서로 매개 변수를 승인해야합니다). 적절한 다형성의 부족).
어떤 옵션이 가장 좋습니까, 아니면 내가 알지 못하는 "위에 해당하지 않는"변형이 있습니까?