dominik bułaj

php developer & web designer

WÅ‚aÅ›nie przed momentem, Matthew Weier O’Phinney poinformowaÅ‚ na stronach Zend Developer Zone o wydaniu Zend Framework 1.9.6.

W szóstym wydaniu poprawiającym wersję z gałęzi 1.9 skorygowano ponad 60 zgłoszonych błędów.

Dla zainteresowanych udostępniono szczegółowy dziennik zmian.
Najnowszą wersję frameworka można pobrać z oficjalnej strony.

Nowy projekt (a wÅ‚aÅ›ciwie dwa) majÄ… zostać oparte o Zend Framework. Niby wszystko piÄ™knie – no bo mamy “zajefajny” framework, który zrobi niemal wszystko (brakuje tylko faktu, że kawy nie parzy ;) ).

Chcąc mieć projekty pięknie od początku wykonane z użyciem Zend_Tool i Zend_Application generuje strukturę dokumentu. Przy czym, w ZF 1.8 zaleca się trzymanie wszystkich ustawień w konfiguracyjnym pliku INI (w celu odchudzenia klasy Boostrap).
WracajÄ…c do projektu – od razu zakÅ‚adam panel administracyjny – tworzÄ™ osobny moduÅ‚.
Moduł ten będzie obsługiwał kontrolę dostępu i autentyfikację opartą o bazę danych. Żeby nie powielać kodu dziesiątki razy chcę stworzyć plugin kontrolera, który sprawdzi czy a. user jest zalogowany; b. ma dostęp do zasobu. I tu zonk.

W dokumentacji jest napisane, że w pliku INI można podać listę pluginów:

plugins: array of front controller plugin class names. The resource will instantiate each class (with no constructor arguments) and then register the instance with the front controller.

W przykładzie wygląda to tak:

resources.frontController.plugins.foo = "My_Plugin_Foo"
resources.frontController.plugins.bar = "My_Plugin_Bar"

Niby wszystko jasne, tworzÄ™ dwie klasy dziedziczÄ…ce po Zend_Controller_Plugin_Abstract… Teoretycznie powinienem mieć możliwość wywoÅ‚ania metody preDispatch(), która może sprawdzić czy użytkownik jest zalogowany i czy ma prawa do zasobu. JeÅ›li nie to, w zależnoÅ›ci od sprawdzenia, albo przekierować go na formularz logowania, albo wyÅ›wietlić stronÄ™ z informacjÄ… o braku dostÄ™pu.
Teoretycznie – bo ten kod nie dziaÅ‚a (błąd Å‚adowania klasy, mimo że jest ona w include_path)!
Co wiÄ™cej straciÅ‚em dziÅ› 2 godziny na znalezienie “obejÅ›cia”. ObejÅ›cie to nic innego jak stworzenie metody _initPlugins() w Bootstrap i po staremu dodanie pluginów do front kontrolera:

protected function _initPlugins()
{
    $front = $this->bootstrap('frontController');
    $front->registerPlugin(new My_Plugin_Foo());
}

Przy okazji przejrzałem dokładniej dokumentację ZF i takie oto wnioski przyszły mi do głowy:

  • ZF to straszna kobyÅ‚a, która sama w sobie nie trzyma standardów – można to samo wykonać na 3 różne sposoby (framework chyba powinien narzucać jeden standard!?)
  • oficjalna dokumentacja jest nieaktualna
  • API tez nieaktualne (Zend_Version) pokazuje numer 1.9.3
  • jedynÄ… pomocÄ… sÄ… fora i bugtracker ZF

Do kolejnego razu! (oby można byÅ‚o powiedzieć coÅ› in-plus…)

Zend z Adobe poinformowały o rozpoczęciu współpracy, która ma na celu umożliwić łatwą kreację aplikacji w technologii Flex (flash) czy desktopowych w Air.

ObsÅ‚uga obu technik zostanie wprowadzona do Zend Frameworka oraz Zend’owskiego edytora php Studio for Eclipse. Jak informuje portal gazeta.pl: Zgodnie z podpisanÄ… umowÄ…, Zend Framework bÄ™dzie teraz obsÅ‚ugiwaÅ‚ Action Message Format (AMF) Flex’a, protokół który pozwala aplikacjom Flash/Flex na wymianÄ™ informacji z serwerami. Dodatkowo Zend Studio for Eclipse bÄ™dzie generowaÅ‚o pliki projektowe dla Adobe Flex Buildera.

Jak dla mnie, to bardzo dobra informacja (jak kolwiek zaimplementują to do frameworka). Budowanie aplikacji w Air (tylko tym sie `bawiłem` jak narazie) jest niemalże dziecinnie proste. Bardzo dobry edytor do tworzenia aplikacji Air udotępnia Aptana.
Niestety, edytor aplikacji Flex – Flex Builder, jest komercyjny. Koszt licencji wynosi 249 lub 699 USD. Dlatego nie miaÅ‚em okazji poznać bliżej tej technologi. Teraz może to siÄ™ zmieni ;-)

Zend Framework 1.6

Przed kilkoma dniami oficjalnie ukazał się Zend Framework 1.6.
Dopracowano kilka komponentów, które były zaprezentowane w wersji Release Candidate 1

Nowości i główne zmiany, to:

  • Zend_Tool (generowanie projektu, kontrolerów z linii poleceÅ„ – wiÄ™cej)
  • Lucene 2.3 Index File Format Support
  • Zend_Session bazodanowy save handler
  • Paginator Component (stronicowanie)
  • Figlet (ASCII art – wiÄ™cej — wg mnie bez sensu)
  • ReCaptcha Service
  • Captcha Form Element
  • Zend_Config_Xml (obsÅ‚uga atrybutów XMLowych)
  • Zend_File_Transfer Component (upload plików)
  • File Upload Form Element
  • Zend_Wildfire Component with FireBug Log Writer (wypluwanie informacji debug do konsoli FireBug)

Dodatkowo poprawiono 287 zgłoszonych błędów (w tym raportowane nowe propozycje).

Co więcej?

  1. Dokumentacja ZF jest dostępna w postaci PDF (dostępna ze strony zend.com).
  2. Zmieniła się także strona pobierania.
    Teraz do wyboru mamy 2 wersje – peÅ‚nÄ… (wszystkie pakiety, wraz z Dojo) i minimal (tylko podstawowe komponenty ZF). Co wiÄ™cej download także jest realizowany ze strony zend.com, co oznacza że trzeba zaÅ‚ożyć (darmowe) konto w zend.com Pobieranie ze strony zend.com tylko jeÅ›li klikniemy na link opisujÄ…cy wersje.

Zend Framework 1.5 homepageDziś ukazała się długo oczekiwana, oficjalna, wersja Zend Framework 1.5.

Z tej okazji między innymi zamieszczono na wiki tzw. QuickStart, umożliwiający szybkie zapoznanie się z funkcjami i działaniem frameworku. Dostępne są także pliki multimedialne ułatwiające zrozumienie działania Zend Framework. W końcu, całkowicie odświeżono stronę projektu.

No ale przecież najważniejsze, to co w środku :-) A zatem:

  1. nowe komponenty Zend_Form i Zend_Layout
  2. nowe funkcje komponenty Zend_Auth (OpenId oraz LDAP)
  3. uaktualniony Zend_Search (Lucene)
  4. uaktualniono generowanie plików PDF
  5. nowy helper ContextSwitch, ułatwiający obsługę żądań Ajax i REST

W końcu dostępna jest wyszukiwarka w manualu. Bardzo przydatne narzędzie.

No i na koniec – godna polecenia jest jeszcze jedna strona.
Witryna, o której już kiedyÅ› wspominaÅ‚em, Rob Allen’a ze znakomitym tutorialem.

Archiwa