Zend Framework 2.0 w wersji stabilnej – nowa jakość?


Zend Framework 2.0 w wersji stabilnej - nowa jakość?

Dzień nowych wersji frameworków! Informowałem już o wydaniu kolejnej stabilnej wersji frameworka Symfony 2.1.0, a także dzisiaj wydany został jego główny konkurent, a mianowicie Zend Framework 2.0.

Zenda miałem okazję poznać już 3 lata temu. Były to moje pierwsze kroki z obiektowym programowaniem w PHP. Jak to początki, były niezwykle trudne. Wszystko było nowe. OOP, MVC i wiele innych technik, metodologii oraz koncepcji musiałem zrozumieć i dobrze sobie przyswoić. Do czasu pojawienia się Symfony2 był to mój ulubiony, a w zasadzie jedyny framework, który miałem okazję używać w swoich projektach. Na bazie Zenda napisałem nawet swój własny mini framework, który także posłużył mi do kilku projektów, które z powodzeniem działają do dnia dzisiejszego.

Po blisko 2 latach pracy, a 5 latach od wydania pierwszej wersji Zend Framework światło dzienne ujrzała właśnie jego druga wersja. Framework zaprojektowany i zbudowany został zupełnie od nowa. Całość miała być bardziej spójna, lepiej udokumentowana, zwiększająca produktywność i szybkość uruchamiania i działania aplikacji. Jeżeli rzeczywiście się to udało i moje testy to potwierdzą, to Symfony2 w końcu zyska godnego konkurenta.

Nowa wersja to konieczność napisania naszych aplikacji od zera. Nie ma możliwości migracji lub aktualizacji z pierwszej wersji do obecnej. Całości niestety trzeba nauczyć się od nowa.

Zend Framework 2.0 został podzielony na moduły, które są niezależnymi bytami, które tak samo jak w Symfony2 mogą być używane w wielu aplikacjach. Same moduły mogą być pakowane do archiwum phar, przez co jest to podobne rozwiązanie do użycia Composera. Moduł to także niezależna przestrzeń nazw, własne biblioteki, pliki szablonów, CSS, JavaScript, grafika. Budowanie z klocków staje się coraz bardziej powszechne i popularne.

Nowy Zend, to także nowa obsługa żądań (request). Opiera się ona teraz na zasadzie obsługi eventów, do których możemy się podpinać na różnych poziomach obsługi żądania.

PHP DI (dependency injection), czyli to co kocham w Symfony2. Pozwala na wstrzykiwanie zależności, które zastąpiły twarde odwołania.

Sporo zmienia się także w widokach. Akcje zwracać będą teraz obiekt ViewModel, który odpowiadać będzie za odwołanie się do konkretnego pliku szablonu, jego ustawienia oraz przekazanie zmiennych. Mamy tutaj także możliwość znaną z Twiga, który jest domyślnym systemem szablonów w Symfony2, a mianowicie dziedziczenia szablonów, która pozwala na osadzanie jednego szablonu w innym.

Całość jest rzeczywiście niezwykle spójna i dobrze przemyślana.

Pobieżnie przebrnąłem przez nową dokumentację, która opisuje jak korzystać z różnych standardowych komponentow, takich jak: Zend_Form, Zend_cache itd. Stworzony został także podręcznik, który demonstruje cały cykl tworzenia aplikacji w ZF2. Mamy tutaj do dyspozycji także przypadki użycia poszczególnych metod i zależności między komponentami. Ujednolicone zostały inferfejsy w całym obszarze Zend Framework 2.0, a także ustandaryzowane mechanizmy konfiguracji, za które odpowiada oddzielny komponent.

Zend Framework 2.0 to także praktyczny brak singletonów, które nie pozwalały, a w najmniejszym stopniu komplikowały rozszerzanie lub zmianę funkcjonalności. Komponenty możemy konfigurować pod względem tego, czy pozwalają one na rozszerzalność i współprace z innymi modułami.

Deweloperzy projektu postawili sobie za cel poprawę wydajności rzędu 200 do 300%. Czy im się to udało? Z pewnością będę się mógł przekonać już niedługo.

Nie miałem na razie czasu by poznać ZF2 lepiej, ale myślę, że zmieni się to już niedługo. Mam jednak nadzieję, że twórcy dobrze wykonali swoją pracę i odpowiednio wykorzystali czas poświęcony na budowę nowej wersji. Jeżeli macie już jakieś doświadczenia z ZF2, to oczywiście dajcie znać w komentarzach.


[1], [2]

Ewolucji ciąg dalszy – Symfony 2.1.0 zostało wydane!

Ewolucji ciąg dalszy - Symfony 2.1.0 zostało wydane!

Dzisiaj na oficjalnym blogu społeczności Symfony2 – główny mentor i twórca frameworka – Fabien Potencier ogłosił wszystkim ważną nowinę. Światło dzienne ujrzała nowa wersja frameworka Symfony (PHP) do zastosowań specjalnych. Gałąź 2.1.x projektu została ostatecznie uznana za stabilną.

Jak napisał sam FabienSymfony 2.1.0 to ewolucja projektu, który istnieje już od ponad 2 lat. Przez ten czas zdążył się on zadomowić we wielu środowiskach produkcyjnych i obsługuje on już znaczną ilość stron i aplikacji.

Wersja 2.1.0 frameworka to:

  • około 1,100 „pull request”
  • ponad 3,500 „commitów”
  • 6000 testów jednostkowych
  • 3000 nowych linii w dokumentacji

W nowej wersji dużą uwagę położono na poprawę stabilności działania oraz rozwój obecnych funkcjonalności. Całość działać ma także teraz nieco szybciej, a nowe możliwości mają pozwolić na jeszcze sprawniejszą pracę.

Główną nowością jest dla mnie Composer.  Mówiąc krótko, jest to narzędzie do zarządzania zależnościami napisane w PHP. Composer pozwala na zdefiniowanie bibliotek których wymaga projekt i w łatwy sposób pozwala na ich instalację, zarządzanie i aktualizacje.

Sam mam przyjemność uczyć się i używać Symfony2 od ponad pół roku. Jestem własnie na etapie pisania swojego 5 większego projektu. Każdemu kto pracuje w PHP lub interesuje się całym środowiskiem bardzo polecam rozpoczęcie przygody z frameworkiem. Ci zaś, którzy mieli szansę obcować z wersją 2.0.x mogą dokonać migracji do wersji 2.1.0 za pomocą oficjalnego poradnika.

Obecnie nad Symfony2 pracuje około 550 deweloperów, ale ilość testujących oraz prezentujących swoje opinie jest znacznie większa. Muszę się także przyznać, że we wielu dyskusjach na Githubie uczestniczyłem i niejednokrotnie miałem okazję pracować nad nową wersją frameworka.

Jak tylko zakończę pracę nad moim obecnym projektem, to z pewnością zainteresuję się wersją 2.1.0. Na razie daję sobie jednak trochę czasu.