wuzetes...

Framework PHP

Przychodzi w życiu każdego webdevelopera taki okres, że dość ma powtarzania kodu po raz n-ty, męczenia się z prostymi, lecz czasochłonnymi czynnościami. I nawet wypracowane już metody, czy też znane z dokładnością do linijki kodu biblioteki nie pomagają. Z każdą następną aplikacją czuje, że to wszystko już kiedyś robił. Starzenie się? Zmęczenie materiału? Nie, to czas na zapoznanie się z dobrym frameworkiem

Framework (rama projektowa, szkielet) to w programowaniu struktura wspomagająca tworzenie, rozwój i testowanie powstającej aplikacji. Z reguły na framework składają się programy wspomagające, biblioteki kodu źródłowego i inne podobne narzędzia.

Tyle mówi Wikipedia, pobieżna googlanie pozwala stwierdzić, że framework = zautomatyzowanie standardowych czynności, gotowe rozwiązania najczęstszych problemów i zastosowanie najlepszych, sprawdzonych wzorców. Ogółem mnie pracy, przynajmniej na początku ;) Ale ja zaawansowanym programistom jeszcze nie jestem, więc... czemu nie?

Trochę wstyd przyznać, ale przez kilka lat użerania się z PHP nie używałem frameworków. Nie czułem takiej potrzeby, pisałem wszystko sam, popełniając przy tym zapewne mnóstwo błędów- ale to jest cena doświadczenia, czy też po prostu niewiedzy... Chociaż z drugiej strony, po ostatniej przebudowie wykopu, widać, że się da pracować w ten sposób. Na moje szczęście, w pewnym momencie zorientowałem się, że wynajduję koło na nowo. Dodatkowo, bawiąc się z JS i jednym z jego frameworków - jQuery, polubiłem właśnie to określenie. I w moim odczuciu framework to taki coś, dzięki czemu ponownie nabierasz ochoty do programowania. Teraz pozostaje tylko wybór, przy czym przysiąść i poświęcić swój czas na poznanie?

Frameworków w PHP jest całe mnóstwo, podczas gdy w konkurencyjnych językach - Ruby, Python) skupiono się na jednym/kilku - odpowiednio Django, Pylons i triumfujący ostatnio RoR. W związku z tym i wybór trudniejszy, spośród długiej listy wyszczególniełem te, o których już conieco słyszałem.

CakePHP
Wzorowany na RoR, przez jednych polecany przez innych odradzany. Co bardzo mnie uraziło, gdy przyglądałem się mu jakiś czas temu dokumentacja była w szczątkowej formie, co dysklasyfikuje go niemal odrazu dla początkującego. Obiło mi się też o uszy, że z wydajnością kiepsko. IMHO zostawmy Railsy dla Rubiego...
Symphony
Przez wielu uważany za najlepszy, najbardziej dojrzały framework PHP. Zbudowany w oparciu o mojavi, Propela i Creole
CodeIgniter
Mały, prosty i figlarny ;) A jednocześnie użyteczny. Narazie z nim się najbliżej zapoznałem i muszę przyznać, że jestem mile zaskoczony i nawet MVC jakiś mniej straszny ;)
Zend Framework
Nie wiem jak od środka wygląda ten framework, ale z całą pewnością trzeba na niego zwrócić uwagę, choćby ze względu na twórców.
Prado
Chociaż nic o nim nie wiem, musiałem go tu wymienić, ponieważ niezwykle często ta nazwa obijała mi się o uszy

Tyle pamiętam, bez większych podpowiedzi ^G. Jeśli czytaliści uważnie, to widać że póki co skłaniam się w stronę prostego i imho dobrego na początek CI (zainteresowani? Dodatkowe materiały znajdziecie w moich delicjach). Jakieś porady, sugestie?

Komentarze:

  • Ja długo nie mogłem w ogóle zajarzyć o co chodzi z tymi frameworkami, więc nie wiedziałem w czym mogły by mi pomóc. Do takich rzeczy podchodzę jak do jeża (co zresztą często się mści, ale co tam :)). Teraz próbują rozgryźć to całe mvc, ale to chyba jeszcze nie dla mnie. Może jak będę pisał setki linii kodu i współuczestniczył w jakimś wielkim projekcie, to zmienię zdanie, ale teraz to raczej mi przypomina strzelanie z armaty do mrówki. Z tego powodu ani trochę nie bierze mnie to RoR.
    Ruby ma także wiele innych frameworków, z których warto wymienić chociażby Nitro, IOWA czy Wee. A ja i tak na razie bawię się za pomocą mod_ruby ;)

  • Tak. Rada. Zrezygnuj ze standardowych widoków w CI i zastąp je jakimś systemem szablonowym ;-)

  • aevin: Nie trzeba wielkich projektów, by korzystać z frameworków czy z modelu MVC. Sam mój blog, który jest teraz na wykończeniu oparłem na Django i jestem z tego rozwiązania nieprzeciętnie zadowolony – mam pełną kontrolę nad całością przy jednoczesnym zachowaniu prostoty. Niekończącą się właściwie rozszerzalność ( instalujesz np. pygments i kolorowanie składni w przykładach :) ) i sporo innych.
    Programistą wybitnym też nie jestem. To jest właściwie pierwsza rzecz, którą zrobiłem w Pythonie.

  • Hmm ja się też nieco wpieniłem, ale lubię własny kod. Dlatego też robię coś a’la framework, zgodny z ideą MVC (albo tak mi się wydaje), pewnie prosty i prymitywny, ale w miare upływu czasu będę go sobie rozbudowywał.

    Odnośnie RoR, to na przykładzie wykopu pokazało jak sobie ten framework radził..

    Ponoć Zend też jest ciężki i powolny, chociaż pracowało mi się na nim dość wygodnie..

  • Osobiście zacząłem od ZF, ale średnio mi się spodobał. Potem przyszło Symfony. Dokumentacja w formie książki jest na prawdę bardzo dobra. Obecnie wszystkie projekty opieram na tym frameworku. A co do tego, że jest trudny na początku – warto poświęcić trochę czasu. Dodajmy pluginy – żyć nie umierać :)

  • Widzisz aevin (BTW: bardzo kobiecy nick ;)) – jak bedziesz zmuszony do klepania komercyjnego, gdzie za kazdym razem masz wrazenie deja vi to zaczniesz szukać czegoś co pomoże się tego pozbyć... PRzynajmniej ja tak mam :) Bo wcześniej też to do mnie nie przemawiało.

    @radmen: Tia, każdy programista PHP chce zbudować dom, spłodzić syna, zasadzić drzewo i napisać własnego frameworka i CMS`a. Ja póki co CMS`a już mam i drzewo zasadziłem.

  • wzs: Nie przeczę, że, szczególnie przy komercyjnych projektach framework to konieczność, właśnie to chciałem powiedzieć w moim pierwszym poście :} Rzecz jasna zauważam, że im więcej piszę tym bardziej przekonują mnie rzeczy i technologie, na które wcześniej nie zwracałem uwagi (na przykład OOP, żeby daleko nie szukać). Ale ponieważ nie przepadam za kodowaniem, to jak już siądę do pisania zajmuję się tym co mi sprawia przyjemność, więc rzadko mam takie „deja vu”. A od kodowania za pieniądze jestem jeszcze lata świetlne niestety. ;-)

  • Co do tych lat świetlnych to sie tylko tak wydaje :)

  • Ej, ale kodowanie komercyjne wcale nie musi oznaczać bardzo rozbudowanego kodu i kilkunastu programistów. O ile nie mówimy o czymś naprawdę wielkiej skali ;)
    A co do programowania za $$$, popieram w 100% Teamona. Życie studenckie wcale nie oznacza tanie :)

  • [szpan, lans etc mode on] Do studenta to mi jeszcze trochę brakuje :P

  • Wiecie – u mnie jest ten problem (sic!), że nie mogę narzekać na brak kasy. Jak wiadomo działa to wybitnie amotywująco :}

    Chociaż przyznam się, że miałem cię wzs spytać tyś to sobie wszystko zorganizował, że cię tak rozchwytują, bo nie wierzę, że portfolio wystarczy ;)

  • WZS: to co robie ciezko nazwac frameworkiem z prawdziwego zdarzenia. Ja to traktuje jako narzedzie, ktore (mam nadzieje) ulatwi mi prace :]

  • Twej uwadze polecam prowadzony przeze mnie projekt Ajaksowego frameworka dla PHP: Tigermouse
    Jest to implementacja architektury MVC z obsługą widoków w stylu bibliotek Qt, GTK# czy SWT. Dodatkowo abstrakcja warstwy danych, bibliotek dostępu do bazy oraz dialektów języka SQL. Framework ten szczególnie dobrze nadaje się do aplikacji webowych budowanych w stylu klasycznych aplikacji grubego klienta.

Dodaj komentarz

Formatowanie Textile Lite włączone.
kod

Podgląd:

code & design - wzs ©
Engine powered by Jogger