Zend Framework는 Zend Company에서 개발한 PHP5를 기반으로 하는 오픈 소스 PHP 개발 프레임워크로, 웹 프로그램 및 서비스를 개발하는 데 사용할 수 있습니다. 이는 MVC(Model-View-Controller) 아키텍처 패턴을 사용하여 애플리케이션의 여러 부분을 분리합니다. 프로그램 개발을 촉진하고 유지 관리합니다.
ZF2는 다른 프레임워크처럼 단순한 업데이트가 아니라 ZF1의 모든 코드를 완전히 다시 작성합니다. 주요 슬로건은 "고성능"입니다.
ZF2가 가져온 새로운 기능이 무엇인지 살펴보겠습니다.
1. 모듈화(ModuleManager)
ZF1과 비교하여 ZF2는 기본적으로 모듈 개념을 지원합니다. Zend의 코딩 표준 및 코드 구조를 따르는 한 모든 타사 PHP 프로그램을 Zend 모듈로 변환할 수 있습니다. 현재 일련의 실험 모듈이 출시되었습니다(ZF2 모듈 참조). Doctrine ORM과 같은 훌륭한 프로젝트가 많이 있습니다.
ZF2가 서서히 성숙해짐에 따라 점점 더 많은 옵션 모듈이 등장할 것으로 예상됩니다. ZF2를 기반으로 한 향후 프로젝트 개발은 빌딩 블록만큼 쉽고 간단해질 가능성이 있습니다.
2. 이벤트 중심(EventManager)
기존 프로그램에서는 코드가 선형 순서로 실행되므로 개발 중에 일부 기능을 구성 요소나 모듈로 분리하기 어려운 경우가 많습니다.
이벤트 기반, 즉 후크는 일반 프로그램이 실행되는 방식을 간소화된 방식으로 변경합니다. 이벤트 기반을 적용한 후 프로그램은 "등록된 이벤트" => "트리거된 이벤트"라는 점프 방식으로 실행되며, 이를 실행할 수 있습니다. 영향을 주지 않고 원본 프로그램 코드를 사용하면 어느 위치에서나 새로운 비즈니스 로직을 쉽게 추가할 수 있어 프로젝트 개발이 매우 유연해집니다.
3. 서비스매니저
서비스 관리자의 개념은 "서비스 로케이터 패턴"의 프로그래밍 아이디어에서 비롯됩니다. 이 아이디어는 프로그램의 각 독립 기능을 "서비스"로 추출하는 것을 옹호합니다. 각 서비스는 서비스가 호출될 때만 독립적으로 깨어날 수 있습니다.
이것이 ZF2 성능 향상의 비결입니다. ServiceLocator의 아이디어는 ZF2의 MVC 시작 프로세스에 모두 반영되어 있으며, 이는 이전에 문제가 있었던 개발자에게 확실히 큰 놀라움을 선사할 것입니다. Zend의 공연과 함께.
4. 의존성 주입
종속성 주입은 주류 Java 프레임워크에서 널리 사용되며 대규모 애플리케이션을 효과적으로 분리할 수 있습니다. ZF2에 Di를 도입하는 것은 계속해서 고민과 절충을 거쳤습니다. 베타 단계에 진입한 후에도 Di는 여전히 ZF2의 기본 구현 솔루션으로 사용되었으며 전체 Mvc 구성은 Di를 기반으로 했습니다. 결국 Di가 야기할 수 있는 메타데이터 프로그래밍 수렁(Metaprogramming)에 빠지는 것을 피하기 위해 Di는 ZF2의 하위 구현으로만 사용되고 ServiceManager는 상위 계층에 추가된다. 일반 개발자는 ZF2를 사용할 때 Di 레벨에 노출될 필요가 없습니다. 그러나 이것이 DI가 우수한 PHP 구성 요소로 존재하고 작동하는 것을 방해하지는 않습니다.
5. 소셜 프로그래밍
ZF2의 코드는 Github에서 완전히 호스팅됩니다. Github의 뛰어난 디자인으로 누구나 포크를 통해 ZF2 프로젝트 구축에 쉽게 참여할 수 있으며 새로운 모듈 기능을 제출할 수도 있습니다. 저자 AlloVince는 또한 Zend 팀이 일부 버그를 수정하도록 도왔으며 Zend 팀이 매우 신속하게(24시간을 넘지 않음) 응답하고 시간을 내어 피드백에 진지하게 응답한다는 사실을 발견했습니다. 따라서 ZF2 프로젝트에 참여하는 것은 PHP 오픈소스 프로젝트에 참여하기 위한 좋은 선택입니다.