dominik bułaj

php developer & web designer

Jako że w najbliższym czasie szykuje mi się wymiana desktopa, stary całkiem padł (wytrzymałościowo i wiekowo nie nadaje się nawet do przeglądania sieci), postanowiłem na laptopie zainstalować Zend Server Community Edition. Dla jasności na laptopie mam system Vista Home Premium (i dobrze mi z tym ;)

Wszedłem na stronę Zend.com i pobrałem paczkę dla Windows (tą z PHP 5.3.1).
Problem pojawił się przy instalacji. Ile razy próbowałem zainstalować serwer, tyle razy w końcu procesu (kiedy powinien kopiować pliki) wyskakiwał błąd -1622. Poguglowałem, ale nic relatywnie związanego z ZSCE nie znalazłem.
Postanowiłem zatem poszukać dalej. Szukałem informacji o błędach instalatorów Windows + kod 1622. I trafiłem na stronę AppDeploy. Ładnie opisano, iż błąd jest związany jest z brakiem pliku log. Opisano także jak aktywować tenże logger. Po dokonaniu zmian w rejestrze (o zgrozo, że aż tak trzeba dogłębnie grzebać w systemie!) udało mi się w końcu zainstalować ZSCE.

PS instalator utworzył sobie cztery pliki log o łącznej wielkości ponad 3.3MB.

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