Posts tagged Zend

Prime

Tak to jest, że czasem aby pójść dalej trzeba zawrócić i wybrać inną drogę. Tak samo jest z rozwijaniem umiejętności, projektów i celów sobie postawionych. GRAD Framework był rozwijany tylko przeze mnie a inicjatywa postała z chęci lepszego zrozumienia Zend Framework. ZF rozwija się bardzo szybko, rośnie do niebagatelnych rozmiarów i często przy pierwszym “starciu” z nim można się przerazić. GRAD rozwijał się w taki sposób, że “to co jest fajne w zendzie” starałem się zaimplementować do GRADA jednak nie korzystając w ogóle z tego jak kod w Zendzie jest napisany. Myślę, że mogę śmiało stwierdzić, że część rzeczy działa nawet lepiej i na pewno szybciej. GRAD Framework przyjął się bardzo dobrze w kilku środowiskach developerskich (zawodowych i amatorskich). Otwarcie projektu na innych pozwoliło mi na spojrzenie na framework z dystansu, dowiedziałem się wielu rzeczy o usability oraz o rzeczach, które w nim działają słabo lub czego w nim brakuje.

Z kolei z inicjatywy dalszych badań nad frameworkami takimi jak Code Igniter czy później Kohana, oraz badań nad frameworkiem Symfony, zrodziła się idea podobna do “GRAD’owej” a mianowicie Luna Framework. Niestety okazało się przy dalszym badaniu, że idea wykracza poza to do czego ludzie się przyzwyczaili przez co była zbyt “niestandardowa” aby programista chętnie do tego przysiadł i zgłębił jego założenia. Robienie kolejnego framework’a który robi wszystko inaczej wydała się bez sensu dlatego projekt porzuciłem.

Kilka miesięcy potem analizując ponownie GRAD’a, Lunę oraz powstający system CMS (który kiedyś zaprezentuję) oraz analizując kierunki którymi podąża ZF oraz to jak rozwija się PHP stworzyłem ideę zintegrowanego systemu pod nazwą Prime. W tej chwili pracuję nad rozwojem frameworka wykorzystującym komponenty w zwarty sposób. Tzn, idea polega na czymś zupełnie przeciwnym do założeń ZF. Framework stanowi całość – nie ma w nim w zasadzie rzeczy opcjonalnych. Dzięki temu system działa bardzo szybko i zajmuje niewiele pamięci. Ponadto pozwala na dzielenie swoich komponentów między wieloma aplikacjami. Podobnie jak w GRAD system będzie pozwalał na uruchamianie wielu aplikacji na tym samym czasie. Ponadto zintegrowany system będzie szybszy i czytelniejszy. (Zaprezentuję wkrótce porównanie wydajności).

W kolejnej serii artykułów zaprezentuję sposób w jaki zaimplementowane są poszczególne elementy systemu a na końcu dojdziemy do pełnej integracji całego komponentu.

Postaram się zaprezentować w kolejnych odcinkach:

  1. Prezentacja poszczególnych części systemu i wyjaśnienie ich najważniejszych elementów
  2. Tworzenie projektu w NetBeans IDE
  3. Podłączanie do swojego projektu pakiet frameworka Prime
    a) Tworzenie “externala” dla projektów wersjonowanych w SVN
    b) Tworzenie zrzutu (checkout) dla projektów, które nie są wersjonowane
  4. Uruchomienie “Hello world” opartego o framework
  5. Zaawansowane funkcje systemu

Info! Będę używał do prezentacji środowiska NetBeans tylko dlatego, że mi ono odpowiada. Do zrealizowania i zrozumienia tematu możesz używać dowolnego innego środowiska (np Eclipse) czy nawet zwykłego edytora z kolorowaniem składni (np Notepad++). Podobnie z SVN. Możesz użyć samodzielnego klienta (np Tortoise SVN) do ściągania repozytorium. Ja używam NetBeans dlatego, że jest tam “All in One”. Jeżeli, na którymś etapie pojawią się problemy to oczywiście chętnie pomogę.

Zapraszam do artykułów

  1. Request

Framework i framework…

Przy okazji budowy własnego frameworka warto zapoznać się z już istniejącymi aby wykorzystać/podpatrzeć dobre pomysły i unikać jak ognia tego co jest złe 🙂 Kilka najpopularniejszych:

Prado jest bardzo rozbudowanym i eleganckim frameworkiem, jednak przeznaczony jest dla naprawdę cierpliwych i dobrze zaznajomionych z nim ludzi. Pisanie w Prado wymaga jednak nauczenia się w zasadzie całkowicie nowego języka. Nie zmienia to faktu, że Prado zapewnia obsługę praktycznie każdego elementu strony jaki przyjdzie nam stworzyć… no ale coś za coś. Polecam go osobom, które pisały w ASP.NET – poczują się jak w domu. Na stronie znajduje się też całkiem fajny kurs.
Prado: http://www.pradosoft.com
Kurs: http://www.pradosoft.com/documentation

Zend jest stale rozwijającym się frameworkiem i przechodzi bardzo gruntowne zmiany. Do niedawna pojawiały się spekulacje, że pisanie w Zend jest jak samobójstwo ponieważ tak intensywnie się zmienia. Dziś mamy już stabilną wersję, ktorą można pobrać ze strony producenta i śmiało pisać. Niestety nie ma wielu “kursów” ale za to na stronie znajduje się pełna dokumentacja.
Zend: http://framework.zend.com
Kurs: http://framework.zend.com/manual/videos

Symfony jest frameworkiem bardzo dobrze udokumentowanym i posiadającym bogatą bazę wiedzy, przykładów i kursów. Programista dosyć często korzystać musi z konsoli wywołań skryptów do różnych operacji (np budowanie modelu danych (Prado też to potrafi), tworzenie szablonu projektu wraz z operacjami CRUD ). Dzięki temu można zautomatyzować proces projektowania z procesem wdrożenia. Nie ma potrzeby robić modelu bazy danych w kodzie projektu a potem “grzebać” w bazie danych. Można to jednym poleceniem zsynchronizować. Symfony ma dosyć sztywną strukturę katalogów co osobiście mi się podoba bo wymusza porządek w kodzie. Åšwietnym pomysłem jest uruchamianie programu w środowisku developerskiem – wystarczy w kodzie nie odwoływać się do index.php tylko np do frontend_dev.php. Taka operacja uruchomi nasz kod wraz z ładną konsolą z raportami, informacjami o serwerze, o połaczeniach z bazą danych itd – świetne narzędzie. Podsumowując: Symfony wydaje się czerpać to co najlepsze z obu rozwiązań dlatego warto przyjrzeć mu się bliżej.
Symfony: http://www.symfony-project.org
Kurs: http://www.symfony-project.org/doc/1_0/

Jeżeli znajdziecie jakieś fajne kursy do w/w możecie je zamieścić w komentarzu a ja je dodam 🙂

Mimo wszystko Zend Framework jest bardziej przyjazny programiście PHP, gdyż w zasadzie nie tworzy żadnych nowych “magicznych” języków. Jest to po prostu zbiór całkiem fajnych klas i funkcji, które ktoś napisał za nas – i to osobiście bardziej mi odpowiada. Symfony z kolei usprawnia wiele procesów i je automatyzuje… czasami wręcz bez pisania ani jednej lini kodu PHP na etapie projektowania – co tak naprawdę jest dobrym rozwiązaniem ponieważ kapsułkuje rozwiązania i rozwiązuje zamysł projektowy – potem dopiero zaczyna się właściwe pisanie kodu. Prado jest bardzo fajnym frameworkiem, ale zdecydowanie potrzeba dużo czasu na jego opanowanie. Zend wydaje się w miarę prosty ale brakuje w sieci przykładów przez co ciężko go opanować. Symfony wydaje się czerpać plusy z obu tych rozwiązań – pozostawiając jednocześnie programiście wolną rękę -mimo wszystko jednak, potrzeba dużo czasu na jego opanowanie.
Jeżeli czas pozwoli to postaram się przeprowadzić parę kursów z różnych frameworków dla osób, które chciałyby się czegoś nauczyć – czas pokaże 🙂

Pozdrawiam i do usłyszenia wkrótce.

Go to Top