php developer & web designer
Tak się składa, że w ramach rozwijania swojej wiedzy, przygotowałem koledze webservice do jego aplikacji mobilnej. Sam webservice ma być proxy pomiędzy bazą danych (docelowo MS SQL) a aplikacją mobilną. Komunikacja odbywa się z użyciem protokołu REST. Tyle słowem wstępu
Developer aplikacji zadecydował, że użyjemy Gita do kontroli wersji. Jest to moja pierwsza styczność z tym systemem (jeśli chodzi o prace developerskie), więc dziś opowiem o pewnej ciekawostce. Wpis ma charakter głównie ku pamięci, bo jak znam życie za 2 tygodnie nie będę pamiętał co i jak
Jako że, webservice biega – a jakże – na Zend Framework, do kodowania używam Eclipse PDT. W Eclipse do obsÅ‚ugi tego systemu kontroli wersji mamy plugin EGit.
Dziś potrzebowałem wykonać komendę git pull. Okazało się, że nie ma takiej komendy zaimplementowanej. Natomiast z oficjalnego forum dowiediałem się, że git pull to w zasadzie połączenie git fetch i git merge.
Zatem, aby wykonać to samo co git pull musimy najpierw na projekcie zrobić Fetch (dostępne pod menu kontekstowym). Następnie wybieramy z tegoż samego menu Merge.
Pojawi się nam okno do wyboru taga lub brancha z jakim chcemy scalić wersję. Wybieramy Local Branches > master.
I gotowe
Wczoraj, 1 kwietnia, wydano poprawki do Zend Framework z dwóch gałęzi 1.10 i 1.9. Dlatego dwóch, gdyż są to poprawki bezpieczeństwa, a nadal sporo osób korzysta z wersji 1.9.x. W przypadku 1.10.3 poprawiono około 80 błędów (changelog).
Poprawki poniekąd wymusiła Dojo Foundation, kilka tygodni wcześniej publikując pewne uwagi w biuletynie bezpieczeństwa (więcej w biuletynie bezpieczeństwa ZF).
PoczÄ…tkowo dowiedziawszy siÄ™, iż do kolejnej wersji Zend Framework (mowa o 1.10.0), bÄ™dzie dodany komponent Zend_Serializer, pomyÅ›laÅ‚em “hej, czy to nie przesada opakowywać w klasÄ™ gotowe narzÄ™dzie dostÄ™pne w PHP”.
Chodzi mi głównie o standardowÄ… i JSONowÄ… serializacjÄ™ i deserializacjÄ™…
Dziś przeglądając dokładniej dokumentację sprawdziłem co tam jeszcze ciekawego wepchano. Okazało się, że komponent jest dość bardzo zaawansowanym narzędziem. Oferuje:
Połączenie PHP< ->Python do wymiany danych to coś dobrego. W końcu będzie możliwość wymiany danych bez potrzeby pisania osobnego (lub wykorzystywania gotowego) interfejsu.
Ostatnio, z różnych powodów, maÅ‚o byÅ‚em aktywny na sieci… mam nadzieje ze to siÄ™ zmieni. A zacznÄ™ od nadrobienia pewnych zalegÅ‚oÅ›ci.
Jak zapewne odnotowaliście, wydano już pełną wersję Zend Framework 1.10.0, a także dwie kolejne wersje pełne poprawek (tzw. minor releases). O wszystkim informował na bieżąco Mateusz Kamiński na swoim blogu.
Ja dodam tylko najświeższy news. Zaczęły się prace nad Zend Framework 2.0!
PoinformowaÅ‚ o tym głównodowodzÄ…cy projektem – Matthew Weier O?Phinney. Pierwsze rezultaty prac oczekiwane sÄ… już za kilka(naÅ›cie?) tygodni.
Na pierwszy rzut idÄ…:
Dziś w nocy ukazała się pierwsza wersja kandydująca Zend Framework 1.10rc1. Można ją pobrać z oficjalnej strony aplikacji.
O nowych ficzerach przeczytacie na devzone.zend.com.
Przy okazji dziś uaktualniona została dokumentacja frameworka. Można teraz wybrać wersję na jakiej pracujemy, aby dostać dokumentację relatywną do możliwości naszej wersji ZF. Nową dokumentację znajdziecie pod starym adresem: http://framework.zend.com/manual/en/.
PS dostÄ™pna jest dokumentacja do kolejnej wersji – 1.10.
Dziś nad ranem czasu polskiego, ukazała się kolejna wersja Zend Framework. Jest to wydanie oznaczone jako 1.10.0 ALPHA, przeznaczone do testowania nowych funkcjonalności, a jest czego testować
Nowe komponenty w Zend Framework 1.10
Dodatkowo jak informuje, opiekujÄ…cy siÄ™ frameworkiem, Matthew Weier O’Phinney – dużej refaktoryzacji poddano Zend_Tool. Wyeliminowano masÄ™ błędów i niedociÄ…gnięć (wÄ…skie gardÅ‚a) oraz dodano nowe fukcjonalnoÅ›ci:
Framework można pobrać, jak zawsze, z oficjalnej strony (pełny changelog na stronie pobierania po rozwinięciu panelu README).
Na koniec harmonogram na najbliższy miesiąc:
Powoli nadchodzi Zend Framework w wersji 2.0. Wcześniej zobaczymy Zend Framework 1.10, która prawdopodobnie będzie ostatnią wersją z obecnej gałęzi.
W wersji 2.0 szykuje siÄ™ wiele znaczÄ…cych zmian. Zacznijmy od tego, że framework bÄ™dzie przepisany. BÄ™dzie wykorzystywaÅ‚ namespace‘y, a wiÄ™c minimalne wymagania do uruchomienia to PHP 5.3.
Największy nacisk położony będzie na MVC. W mapie drogowej, umieszczonej niedawno na wiki, wypunktowano pakiety, które zostaną poddane refactoringowi. Są to:
Pozostałe komponenty, które zostaną przepisane:
Zmianie ulegnie także architektura pluginów, gdzie zostaną zastosowane nowe wzorce projektowe. A część kodu frameworka, która używa Singletona zostanie przepisana, gdyż w pewnych sytuacjach (głównie testowanie) sprawia problemy.
Więcej informacji na wiki.
Jak na razie nie wiadomo nic na temat planowanych terminów wydań 1.10 i 2.0.
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:
Do kolejnego razu! (oby można byÅ‚o powiedzieć coÅ› in-plus…)
23 wrz 2009
Rozumiem, że rozwój najpopularniejszego frameworka dla php, wymusza aktualizacje co jakiś czas. Nie rozumiem jednak dlaczego one są robione tak często! Czy nie można core framworka udostępnić oddzielnie a całą resztę (mało ważne moduły) wydawać jako dodatek. W ten sposób dodanie nowych dwóch Zend_Services_XXX nie powodowałoby konieczności zmiany numeracji całego frameworka?
Inna sprawa, że wiecznie poprawiane są błędy z poprzednich wydań. Czy nie można wydać czegoś dobrze sprawdzonego? Byłoby mniej kłopotów, a tak co miesiąc trzeba aktualizować framework (i nanosić poprawki w kodzie aplikacji, jeśli zmiany nie są kompatybilne wstecznie). CakePHP jest dostępny na dzień dzisiejszy w wersji 1.2.5, Symphony (do wyboru branche) 1.0 i 1.2.
A Zend Framework?
Wydana wczoraj wersji 1.9.3 po kilkudziesięciu minutach była już przeszłością. Szybko udostępniono 1.9.3PL1.
Rozumiem, że znaleziono błąd krytyczny, ale gdzie byli beta-testerzy?!
Wszystko to powoduje, że coraz bardziej jestem rozczarowany produktem firmowanym jako “w peÅ‚ni przetestowany” (Fully Tested – Extend Safely and Easily).
31 lipca, wydano nową wersję Zend Framework, oznaczoną 1.9.0. Jest to kolejna wersja wydana w ostatnim kwartale. Tempo ogromne, o czym świadczy fakt, iż wersji 1.8 (wydanej w maju) poprawiono około 700 zgłoszonych błędów!
Lista nowości jest długa, poniżej ważniejsze z nich:
Framework można pobrać, jak zawsze, z oficjalnej strony (lista zmian).
PoczÄ…wszy od wersji 1.8, Zend Framework posiada caÅ‚kowicie przepisany Zend_Loader. Nie majÄ…c czasu na “peÅ‚nÄ… migracjÄ™” (czyt. wymagane zmiany w kodzie), po aktualizacji biblioteki do wersji 1.8.x zobaczymy warning informujÄ…cy, iż Zend_Loader::registerAutoload(); jest przestarzałą metodÄ… i że w wersji 2.0 zostanie usuniÄ™ta.
Co zatem zrobić, jeśli nie mamy czasu (lub ochoty) na grzebanie w kodzie i podpinanie Zend_Application (wsparcie bootstrapu)?
Prostym rozwiązaniem będzie zamiana:
require_once 'Zend/Loader.php'; Zend_Loader::registerAutoload();
na
require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader->setFallbackAutoloader(true);
To wszystko! Aplikacja działa od tej chwili poprawnie z najnowszą wersją Zend Framework. Dodatkowo Zend_Loader zachował stary tryb działania
Po skoÅ„czeniu udoskonaleÅ„ i dokonaniu kilku poprawek na PinkCrow, postanowiÅ‚em w koÅ„cu zmigrować witrynÄ™ zawierajÄ…cÄ… moje portfolio do ostatniej wersji Zend Framework, czyli 1.8.1. A zmian bÄ™dzie od groma. Od wprowadzenia dawno planowanych obsÅ‚ug layoutu i formularzy przez użycie najnowszych “gadżetów” Zend_Application, Zend_Navigation etc.
Ale do rzeczy… Jako że lokalnie używam svn (historia zmian, tagowanie wersji, etc.) katalog z bibliotekÄ… Zend’a mam podpiÄ™ty przez svn:externals.
SzukajÄ…c Å›cieżki do wersji otagowanej jako “release-1.8.1″ natrafiÅ‚em na tag “release-1.8.2″.
W pliku README.txt czytamy:
Zend Framework 1.8.2 Release ([INSERT REV NUM HERE]).
Released on May 27, 2009.
Zatem wychodzi na to, że tego newsa publikuję wcześniej niż oficjalna strona frameworka!
Inna ciekawostka, plik LICENSE.txt zawiera zakres dat 2005-2008 – ot takie maÅ‚e przeoczenie
13 maj 2009
Bardzo szybko wydano pierwszą poprawkę do Zend Framework 1.8, który oficjalnie zaprezentowano dokładnie 13 dni temu.
Co ciekawe, ekipa tworzÄ…ca framework chwali siÄ™, iż w tym czasie zrobiÅ‚a aż 68 poprawek. Nachodzi mnie pytanie – cieszyć siÄ™ czy pÅ‚akać?! Nie bardzo rozumie wydawanie czego co nie jest sprawdzone dwa/trzy razy. Okazuje siÄ™, że błędy byÅ‚y nawet w przykÅ‚adach dokumentacji – Quick Start!.
No ale do rzeczy – z grubszych poprawek wykonano:
Lista wszystkich błędów znajduje siÄ™ w ZF issue trackerze, a najnowszÄ… wersjÄ™ – Zend Framework 1.8.1 można poprać ze strony http://framework.zend.com/download
Właśnie ukazał się Zend Framework w wersji 1.8 Beta 1. jest to kolejna wersja testowa przed finalną zapowiedzianą na koniec miesiąca.
Z głownych nowości:
.
NajnowszÄ… wersjÄ™ można pobrać z oficjalnej strony framework‘a.
Dziś także ukazuje się nowa wersja Ubuntu. Ubuntu 9.04 nazwane Jaunty Jackalope.
Najnowsze komentarze