Pierwsza odsłona Zend Framework 1 w wersji testowej miała miejsce 3 marca 2006 roku. Pierwsza wersja stabilna została opublikowana 30 czerwca 2007 roku. W ramach pierwszej wersji wydano dziewięć wersji pobocznych oznaczonych odpowiednio 1.0, 1.5, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12. Celem implementacji Zend Framework 2 było poprawienie architektury poprzedniej wersji oraz lepsze dostosowanie do wymagań deweloperów.
Wykorzystano spójny zestaw wzorców projektowych i praktyk programistycznych stosowanych w przypadku niezawodnego i wysoko wydajnego oprogramowania. Pierwsza wersja testowa ukazała się 25 lipca 2012 roku a na odsłonę wersji stabilnej trzeba było poczekać do 4 września 2012 roku. Do tej pory wydano 4 wersje poboczne (2.0, 2.1, 2.2, 2.3). Producent zapowiedział, że wraz z ukazaniem się ZF2, prace nad ZF1 nie zostaną porzucone i będą prowadzone jeszcze w 2014 roku (jak dotąd ostatnia wersja ukazała się 17 września).
Nowa wersja biblioteki to również nowe wymagania co do środowiska, w którym będzie wykorzystywana. Wersja pierwsza współpracuje z interpreterem PHP w wersji 5.2.11 lub wyższej, natomiast do poprawnego uruchomienia ZF2 konieczny jest interpreter w wersji 5.3. Pozwala to na wykorzystanie nowych możliwości, jakie niesie ze sobą PHP 5.3 m.in. takich jak przestrzenie nazw oraz funkcje lambda.
Przestrzenie nazw są od wielu lat z powodzeniem wykorzystywane w innych językach oprogramowania (np. C++). Dzięki nim w ZF2 udało się zachować przejrzystość struktury katalogów biblioteki przy jednoczesnym skróceniu nazw klas bibliotecznych. Nie trzeba dodawać, że dla deweloperów to duże ułatwienie. Na przestrzeniach nazw zyskuje również kod źródłowy, który dzięki skróceniu nazw klas jest bardziej czytelny i łatwiejszy w utrzymaniu i organizacji.
Zend Framework 2 jest otwarty na obecnie panujące standardy w świecie aplikacji webowych oraz współpracę z innym oprogramowaniem. Przykładem niech będzie Composer oraz system wersjonowania Git. ZF2 zawiera Composer, co znacznie ułatwia integrację aplikacji z wymaganymi bibliotekami. Dotychczas integracja leżała w gestii dewelopera natomiast obecnie, dzięki wykorzystaniu Composera integracja sprowadza się do wydania maksymalnie dwóch poleceń w konsoli. O pobranie i umieszczenie biblioteki w odpowiednim miejscu drzewa katalogów projektu dba sam Composer. Dzięki temu narzędziu możliwa jest integracja niezliczonych bibliotek np. Doctrine. Wydaje się, że ZF2 rezygnuje z wersjonowania projektu przy użyciu do niedawna bardzo popularnego SVN-a na rzecz Git-a (biblioteka oprócz plików własnych zawiera pliki charakterystyczne dla Git-a).
Przy pierwszym kontakcie z ZF2 można odnieść wrażenie, że mamy do czynienia z zupełnie nowym narzędziem, jednak głębsza analiza ujawnia patenty znane z poprzedniej wersji. Wiele z zachowanych komponentów zostało znacznie uproszczonych np. MVC, internacjonalizacja, filtry, formularze, widoki. Ponadto zrezygnowano z elementów o dyskusyjnej użyteczności i trudnych w wykorzystaniu np. dekoratory formularzy. Na uwagę zasługuje rozbudowany w stosunku do pierwszej wersji system plików konfiguracyjnych oraz podział aplikacji na moduły. Podział na moduły był również możliwy w ZF1, jednak obecnie położono duży nacisk na niezależność modułów i przenoszenie ich pomiędzy różnymi aplikacjami. Producent udostępnia repozytorium zawierające powszechnie wykorzystywane moduły, które wedle potrzeby można bez problemu zintegrować z własnym projektem.
Nowością jest wykorzystanie dwóch wzorców projektowych: Service locator oraz Dependency injection (Di). Service locator jest centralnym miejscem aplikacji przechowującym obiekty wymagane w różnych miejscach aplikacji. Jest odpowiednikiem rejestrów znanych z poprzedniej wersji, a ponadto (i przede wszystkim) ułatwia tworzenie i inicjalizacje skomplikowanych obiektów. Z tworzeniem i inicjalizacją obiektów związany jest kolejny wzorzez projektowy – Di. Upraszczając, jeśli do stworzenia obiektu A wymagane jest stworzenie obiektu B z pomocą przychodzi Di, który redukuje powtarzalny w wielu miejscach kod potrzebny jedynie do utworzenia i inicjalizacji instancji konkretnego obiektu.
Podsumowując, ZF2 nie przynosi drastycznych zmian w stosunku do poprzednika a osoby, które dobrze opanowały pierwszą wersję nie powinny mieć większych problemów z jego opanowaniem. Na stronie GitHub został utworzony projekt dla Zend Framework 3, jednak dotychczas nie udostępniono żadnego kodu. Wiadomo jedynie, że prace nad kolejną wersją są w toku.