Heavymind
Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza.

07/05/2008

Aktualizacja trzeciej cześći samouczka Zend Framework

Opublikowane jako: Zend — Tags: , , , , — Kubek Bartosz @ 20:52

Pragnę poinformować, iż zaktualizowałem trzecią część serii Zend Framework Tutorial, pt.: “Rozwijanie Zend View - Zend Layout“. Artykuł ten jest w tym momencie dostosowany do zmian jakie zostały wprowadzone wraz z wersją 1.5.0 Zend Framework.

Dodatkowo udostępniłem za pośrednictwem serwera SVN, kompletny kod źródłowy. Szczegóły w akapicie Repozytorium SVN.



12/04/2008

Dostęp do kodów źródłowych samouczków Zend Framework

Opublikowane jako: Subversion, Zend — Tags: , , , , — Kubek Bartosz @ 15:08

Świadom zapotrzebowania, przygotowałem drodzy moi czytelnicy, dostęp do kodów źródłowych, gotowych przykładów samouczków z serii Zend Framework. Dostęp do źródeł za pośrednictwem serwera SVN, udostępniam dzięki usługom Google Code.

Osobom nie znającym jeszcze systemu kontrolowania wersji Subversion (SVN), polacam zapoznanie się z jego możliwościami i obsługą, ponieważ jest to jedno z podstawowych narzędzi każdego programisty. Aktualnie, czasowo nie jestem w stanie, by streścić podstawy obsługi jakiegokolwiek klienta SVN, dlatego odsyłam do źródeł wujka Google.

Szczegóły nt. dostępu do kolejnych tagów repozytoriów odpowiednich części samouczka, znajdują sie w dodanych przez mnie sekcjach owych samouczków. Są nimi kolejno:

Celowo nie zamieściłem odnośników do repozytorium z kodem źródłowym aplikacji z III części samouczka “Zend Framework Tutorial - Rozwijanie Zend View - Zend Layout“, dlatego że po opublikowaniu Zend Framework w wersji 1.5.1, treść tego artykułu wymaga gruntownego przepisania. Wiąże się to bezpośrednio z faktem załączenia do jądra Zend Frameworka biblioteki Zend_Layout, która w III części samouczka jest opisana jako dodatkowa biblioteka rozszerzająca. Przy tej okazji nie radzę wręcz, by starać się korzystać z treści tej części samouczka.



06/04/2008

Panowanie nad Symfony

Opublikowane jako: AJAX, Symfony, Zend — Tags: , , , , , , , , — Kubek Bartosz @ 19:23

Pochłonięty światem frameworka Symfony, całkowicie zatraciłem poczucie czasu i “przespałem” moment, w którym to pewnie wszyscy “wymacywali” wszystkie nowe “ficzery” Zend Frameworka 1.5. Zajęty jednak mnogością zagadnień jakie pokrywa swoją funkcjonalnością Symfony, nie sposób było zrobić inaczej.

Po bardzo dokładnym jednak zapoznaniu się z Symfony, wyrobiłem sobie własną opinię na jego temat, która w paru detalach stawia go w nie najlepszym świetle. W mojej opinii :

  • model cache’owania jest na tyle niewygodny podczas potrzeby usunięcia “nieaktualnych cache’y”, że jedynym rozwiązaniem pozwalającym użyć ten mechanizm w dużym, a nawet średnim projekcie, jest rozszerzenie go samodzielnie o “tagi”, którymi poszczególne cache można by oznaczyć (co nie było by takie łatwe uwzględniając bardzo rozbudowaną strykturę cache’owania w Symfony)
  • i18n (moduł budowania aplikacji wielojęzykowej) jest straszny. Otóż podczas pracy z nim potrzeba jest przenoszenia każdej frazy z template’a do pliku słownika, który można budować np. w formacie XML Localization Interchange File Format (XLIFF) (co akurat jest dobrym rozwiązaniem ze względu na to, że istnieją programy wspomagające pracę z słownikami w tym formacie). Jednak każdorazowa potrzeba pisania frazy w template’cie oraz ponownego zdefiniowania jej w XLIFF’ie jest niewygodna. A już na pewno nie do zniesienia jest, w razie potrzeby poprawienia frazy w oryginale ( w template’cie ), wymóg poprawiania jej w słowniku (np XLIFF). Stosując w kolejnych projektach stałe i sprawdzone rozwiązanie oparte na kluczach stałych ( np “NAVIGATION_ITEM_MEMBER_HOME” ), zastanawiam się skąd takie podejście. Owszem, są sposoby by to obejść, jednak nie w tym rzecz by trzeba było obchodzić domyślne schematy.
  • integracja JavaScript ( w tym Prototype oraz Scriptaculous ) w szablony HTML ( template’y ) poprzez zastosowanie licznych tzw View Helperów (znane zagadnienie również dla programistów Zend Framework) jest jeszcze bardziej straszne i w mojej ocenie nie do zaakceptowania! Otóż, idąc tą drogą, jako rezultat szablonu zawierającego udogodnienia web2.0 (w kontekście interaktywności JavaScript i AJAX), otrzymujemy kod HTML, licznie posiekany wstawkami “<script></script>”, czy też CDATA. Mimo więc mej znajomości wszelkich “remote” Helperów (właśnie tych od komunikacji AJAX, oraz wstawek zwykłego JavaScript) w Symfony , pasuję i wybieram tworzenie logiki po stronie klienta (JavaScript) w dotychczasowym stylu: jako osobne pliki .js.
  • ostatecznie odniosłem wrażenie, że autorzy książki “The Definitive Guide to symfony“, opisując liczne Helpery widoku (tj. input_tag(),  object_input_tag() itp.), nieraz sami próbowali na siłę przekonać samych siebie do potrzeby pisania template’u za ich użyciem. W mojej skromnej ocenie, szablony HTML, mają być szablonami HTML, a nie zbitką kodu PHP, gdzieniegdzie tylko poprzedzielaną znacznikami DIV. Tak jak w przypadku podstawowych Helper’ów widoku w Zend Framework, pachnie to sztuką dla sztuki.

Jednak to już wszystko co mogę powiedzieć złego o Symfony. Zauważyć więc należy, że by wytypować większość zalet tego framework’a, musiałbym napisać serię felietonów. Szala przeważa za tym, by traktować Symfony jako poważny framework, gotowy by pisać w nim duże, wielojęzyczne i nowoczesne aplikacje www.

Swoją drogą, framework ten w aktualnej stabilnej wersji 1.0 ma już ponad rok, co każe domniemywać , iż w nadchodzącej wersji 1.1 dużo się zmieni. I owszem, ale o tym już w następnym wpisie wkrótce.



18/02/2008

Podróże kształcą - Symfony, YAML, Propel, Prototype

Opublikowane jako: Symfony, Zend — Tags: , , , , — Kubek Bartosz @ 21:47

Kilak spraw organizacyjnych.

Dla osób, które zniecierpliwienie oczekują kolejnych artykułów, przekazuję i proszę - cierpliwości. Na zastój w publikacji zapowiadanych artykułów ma wpływ jedna szczególnie rzecz - nadchodząca wersja 1.5 Zend Framework.

Najprzód, chcę pokreślić, iż aktualnej wersji “1.5 Preview Release” (czyt. wdania zapowiadającego co będzie nowego) , nie wspieram/nie przyjmuję do wiadomości. Zespół autorów Zend Framework wyjaśnia, iż wiele metod w nowo dodanych funkcjonalnościach, może zmienić zasadę swego działania, jak również mogą zostać całkiem usunięte w części. Dlatego też niech dojrzewa swoim tempem nadchodzące wydanie tego frameworka.

Jedną z większych zmian jakie oferować mają nowe biblioteki, to spore zmiany w Zend_View. A dokładnie rzecz ujmując, autorom bibliotek rozszerzających możliwości Zend_View (tj. Zend_Layout, Zend_View_Helper_Placeholder), udało się wprowadzić ich rozwiązania jako składnik podstawowy pakietu Zend Framework w nadchodzącej wersji. Brawo im za to.

Co za tym idzie, istniejący już artykuł na łamach tej strony nt. Zend_Layout , będzie do przeróbki, a trzeci z serii który miał powstać, traktujący o widokach komponentowych, widokach częściowych itd. nie powstanie na bazie wcześniejszych, zewnętrznych i dodatkowych bibliotek. Owszem - powstać może, ale już w oparciu o przyszłą stabilną wersję 1.5.

Inna rzecz, że przygotowany materiał na artykuł drugi z serii Zend_View, traktujący o implementacji Smarty, nadal może powstać, ponieważ nie koliduje z tym co nadchodzi w nowym Zend Framework. Mam nadzieję iż będę gotów z publikacją tego artykułu przed stabilna nową wersją Zend Framework.

A między czas oczekiwania na Zend Framework 1.5, polecam poświęcić podróżom po po nowych lądach. Moim wyborem jest Symfony - ogromny framework, z równie olbrzymią społecznością używających go programistów. Pokuszę się o stwierdzanie, że jest to drugi co do rozmachu i zaawansowania framework, obok Zend Framework. Również w pełni obiektowy, posiadających wiele wspaniałych wbudowanych rozwiązań, do których Zend Framework albo już dąży w stosunku do jednych, albo jeszcze o tym nie wie że dążyć będzie, w stosunku do innych. Budowanie modułów z poziomu linii poleceń, implementacja i integracja z PROPEL‘em, który zapewnia część Modelu struktury MVC, integracja z Prototype, pełna konfigurowalność wszystkiego dzięki plikom YAML, część View modelu MVC posiadająca takie rozwiazania jak: widok layout’owy, komponentowy, częściowy itp. To wszystko od dawna już jest, doskonale udokumentowane, stabilne i gotowe na każde zastosowanie. Polecam przejście “kalendarza adwentowego” - 24 części samouczka, opisujących jak w Symfony zbudować aplikację web2.0.

Idąc więc z nurtem słów, często wypowiadanych przez mego przyjaciela: “podróże kształcą”, polecam serdecznie zapoznanie się z w/w frameworkiem. Można nabrać cennego dystansu do różnego rodzaju rozwiązań (lub ich brak), znajdujących się w naszym “upatrzonym” Zend Framework’u.



02/01/2008

Porządki noworoczne - aktualizacja samouczków do Zend Framework 1.0.3

Opublikowane jako: Zend — Tags: , , — Kubek Bartosz @ 22:16

Rzecz najważniejsza - Życzenia Wszystkiego Najlepszego w Nowym 2008 Roku dla wszystkich moich szanownych Czytelników! Niech Nowy Rok przyniesie Wam masę nowych i eskcytujących doświadczeń w dziedzinie programowania.

Wraz z nowym rokiem, warto bym przekazał wyrazy wdzięczności wszystkim czytelnikom, którzy do końca ubiegłego roku odwiedzili stronę tego bloga ponad 24 000 razy, a samouczki Zend Framework Tutorial czytali ponad 15 000 razy przez okres dokładnie ostatniego pół roku - odkąd strona ta istnieje. Przez czas ten także, witryna ta zdobyła czwarty poziom rangi PageRank w indeksie stron Google - a to sporo ! Więc serdeczne podziękowania dla wszystkich czytelników - po raz kolejny!

Gdy tylko wyszła kolejna odsłona Zend Framework, doszły mnie informacje, iż kody źródłowe z samouczków nie chcą działać prawidłowo z najnowszą wersją bibliotek Zend’a. Dlatego też w dniu dzisiejszym opublikowałem aktualizację wszystkich trzech części Zend Framework Tutorial.

Dla osób, które będą doszukować się bezpośrednio różnic jakie muszą wykonać w swoim kodzie, streszczę listę zmian jakie nanieść należy w odpowiednich miejscach.

Zend Framework Tutorial - Pierwsze kroki z Zend Framework - nie wymaga żadnych zmian! Wystarczy podmienić zawartość katalogu /library/Zend/ na tę z najnowszej wersji.

Zend Framework Tutorial - Rozwijanie aplikacji - po podmianie bibliotek w katalogu /library/Zend/, należy jeszcze zająć się użyciem nowo dodanej funkcji w Zend_Loader’ze.

Odszukajmy następujące miejsce w bootstraper’ze:

plik: public/index.php

   ...
   //If class not found instanciate it automatically
   require_once 'Zend/Loader.php';
   function __autoload($class)   {
      Zend_Loader::loadClass($class);
   }

i zastąpmy ten kawałek kodu następującym:

   ...
   //If class not found instanciate it automatically
   require_once 'Zend/Loader.php';
   Zend_Loader::registerAutoload();

Jest to jedyna zmiana wymagana by poprawnie uruchomić aplikację testową

Zend Framework Tutorial - Rozwijanie Zend View - Zend Layout - W tym przypadku wystarczy zastosować identyczną zmianę z Zend_Loader::registerAutoload() co we wcześniejszym wystąpieniu. Proszę jednak zwrócić szczególną uwagę, by podczas podmieniania bibliotek z katalogu /library/Zend/, pamiętać o tym by przywrócić (z powrotem skopiować do tej samej lokalizacji) dodatkowe biblioteki Zend_Layout, o których mowa w III części tutorial’a.

Dziękuję wszystkim za bieżące wsparcie w utrzymywaniu kodów tutorial’i w dobrej kondycji, poprzez zgłaszanie wszelkich błędów. Pozdrawiam.



20/12/2007

Zend Framework Tutorial - Rozwijanie Zend View - Zend Layout - nowy artykuł

Opublikowane jako: Zend — Tags: , , — Kubek Bartosz @ 00:34

Sporo czasu minęło odkąd po ukończeniu drugiej części ZendFramework Tutorial, miałem zamysł napisania części trzeciej. Plany były o tyle poważne, że przygotowałem od razu kod źródłowy, wokół którego powstać miał kolejny artykuł. Była jednak rzecz pewna, która nie dawała mi spokoju, nie pozwalała zacząć opisywać przygotowanego materiału, a była nią niedostateczna wiedza nt. szerokiego spektrum możliwości jakie można wycisnąć z abstrakcji oferowanej przez Zend View. Inaczej mówiąc, byłem świadom iż dalsze studiowanie przypadków użycia różnych wzorców projektowych w obszarze Widoków, może przynieść nowe wnioski, które mogły by przynieść potrzebę zmiany podejścia do opisania przygotowanego już materiału. I tak też się stało. Widoki częściowe („Partial View”), wzorzec Widoku Kompozytowego ( „Composite View”), „Two Way View”, „Layout View”, elementy rezerwujące miejsce w widoku („placeholders”) - to terminy, które kryją za sobą sporą ilość teorii. Poznanie i przyswojenie jej jest najlepszą drogą do utarcia sobie własnego zdania na temat najlepszego zastosowania konsensusu tej wiedzy w praktyce.

Z własnych więc doświadczeń i wniosków, wypracowałem model Widoku, dla Zend Framework, wykorzystujący wzorzec Layout View wraz z Composite View i jego pomocnikami. Model ten oparłem o biblioteki stworzone głównie przez pewnych dwóch wybitnych programistów: Pádraic’a Brady oraz Matt’a Weier’a O’Phinney. Ich prace w tej dziedzinie mają wielką szansę wejść na stałe do bibliotek Zend Framework. Póki jednak ich tam nie ma, a potrzeba pracy z dobrze zorganizowanym komponentem Widoku struktury MVC nadal istnieje, skorzystałem z ich kodu. Kod ten wymagał jednak kilku poprawek oraz przystosowania do pracy z najnowszą na dzień pisania artykułu wersją Zend Framework, tj. 1.0.2 – co uczyniłem i mam zamiar opisać.

Efektem jest zestaw bibliotek, które chciałbym przedstawić dzieląc temat na dwie artykuły: Zend_Layout oraz rozszerzenie Zend_View („widoki kompozytowe”). Podział ten ma o tyle sens, że zastosowanie pierwszego nie wymusza istnienia drugiego. I odwrotnie.

W miejscu tym zaznaczyć jednak chciałbym, iż wszelkie prawa do odpowiednich bibliotek należą do ich autorów. Z własnej strony dla celów naukowych i nie komercyjnych poddaję je modyfikacjom by móc je zaprezentować możliwe przypadki ich użycia.

Szczegółowe informacje na ich temat można uzyskać na stronach autorów:
* Pádraic Brady: http://blog.astrumfutura.com/
* Matthew Weier O’Phinney: http://weierophinney.net/matthew/
oraz na Zend Framework Wiki :
* Zend_Layout Component Proposal
* Zend_View Enhanced Component Proposal

Chcę także wyjaśnić, iż celem mych artykułów nie będzie wprowadzenie w teoretyczne podstawy zastosowanych w artykułach wzorców projektowych, lecz przybliżenie esencji i okazanie ich możliwości w praktyce.

Dzięki zastosowaniu rozdziału na dwa artykuły, mogę pozwolić sobie także na wprowadzenie trzeciego, który zaplanowany był pierwotnie jako właśnie trzecia część serii Zend Framework Tutorial pt: „implementacja Smarty”. Uwzględniają jednak powyższe, zajmę się tym tematem nie od razu.

Tyle słowem wstępu. Zapraszam więc do lektury pierwszego z serii artykułu, pt :
Zend Framework Tutorial – Rozwijanie Zend View - Zend Layout”.

PS: W międzyczasie pisania artykułu, pojawiłą się kolejna odsłona Zend Framework w wersji 1.0.3. W świątecznym międzyczasie postaram się zaktualizować istniejące kolejne części serii Zend Framework Tutorial by były kompatybilne z najnowszą odsłoną frameworka.



06/10/2007

Instalacja serwera Apache, PHP i MySQL dla aplikacji Zend Framework

Opublikowane jako: Apache, Zend — Tags: , , , , , , — Kubek Bartosz @ 18:19

Kilkakrotnie już, czytelnicy samouczka Zend Framework zwracali się o pomoc w konfiguracji środowiska testowego, tak by móc z sukcesem uruchomić zawarte na łamach tego bloga przykłady.

Z myślą o Was, jak i o każdej kolejnej osobie, która zaczyna zabawę w programowanie - czy to z Zend Frameworkiem, czy to w ogóle stron www w języku PHP, napisałem kolejny artykuł.

Instalacja WAMP dla Zend Framework” jest tutorialem, który w szczegółowy sposób opisuje elementarne kroki jakie należy wykonać by uruchomić jakąkolwiek aplikację PHP5 (w szczególności opartą o Zend Framework).Mam nadzieję, że będzie on wartościowy dla osób szukających pomocy w tym temacie.



Instalation of Apache with PHP and MySQL servers for Zend Framework based application

Opublikowane jako: Apache, Zend — Tags: , , , , , , — Kubek Bartosz @ 18:12

Was it a few times already, when Zend Framework Tutorial readers have came to me with questions about their problems with testing environment configuration. They couldn’t successfully test Tutorial scripts.

And here comes out for Your needs - yet another tutorial I’ve made for not only Zend Framework beginners, but also for Y’all who wish to start Your first PHP applications.

WAMP instalation for Zend Framework based applications” is a tutorial, that describes in details basic steps that needs to be made, to properly install and configure a PHP5 application (Zend Framework based as well). Hope that people searching for a help in this area will enjoy it and find it useful.

ps: I’ts in polish only. Sorry



01/10/2007

Zend Framework 1.0.2 Opublikowany

Opublikowane jako: Zend — Tags: , — Kubek Bartosz @ 21:32

Z wielką przyjemnością chciałbym zaanonsować informację o wypuszczeniu nowej wersji Zend Fremework przez zespół ZF. Jedną z głównych nowości jest dodanie bibliotek pozwalających komunikować się z Google Base API. Więcej informacji można przeczytać tutaj, a szczegółowy change-log tutaj.

Pragnę także się podzielić informacją o moim skromnym wkładzie jaki miałem w tę wersję Zend Framework. Otóż na liście zmian change-log znajduje się m.in. rozwiązanie zadania ZF-1871 mego autorstwa ;) , w którym to przedstawiłem opis problemu wraz z propozycją rozwiązania problemu z Zend_Gdata. Zadanie to umieszczone jest w narzędziu do zarządzania projektem JIRA tutaj. Jest to pierwszy i w gruncie rzeczy prozaiczny problem jaki udało mi sie znaleźć w Zend Framework po wersji 1.0. Biorąc to pod uwagę, zauważyć należy jak dopracowaną i profesionalną jest ten produkt platformą.

Dodam jeszcze, że aktualnie pracuję nad kolejnym artykułem tematycznie powiązanym z Zend Framework. Mam nadzieję że w najbliższym tygodniu będę gotów go przedstawić.



Zend Framework 1.0.2 Released

Opublikowane jako: Zend — Tags: , — Kubek Bartosz @ 21:15

With the pleasure I’m announcing the information, that Zend Framework team has released version 1.0.2 of this framework. One of the biggest change is new libraries to handle communication with Google Base API. More info about this You will find here, and change-log here.

Please notice a bug-resolve report ZF-1871 in this change-log, cause this time I’ve been also take a part of making Zend Framework better ;) My issue ticket has been created in ZendFramework issue tracker (here) including solution proposal, witch problem was solved within current release. It was a minor bug, but first I’ve found sync version 1.0.0. I think it goes without saying, that this means that Zend Framework is a stable and professional platform for developing web based applications.

I’d like to mention that I’m in the middle of writing another article regarding Zend Framework (polish only, as usual. Sorry). Hope I’ll finish within this week.



Newer Posts »

Oparte na WordPress