Temat: Frameworki (PHP/PHP5)

Witam
W PHP programuje dość niedługo, około roku w php4 i pół roku obiektowo. Jak do tej pory nie używałem żadnego frameworka i jakoś żyłem :) Udało mi się napisać małą grę internetową typu mmosg (praca inżynierska). Pewnie dziwicie się dlaczego nie użyłem jakiegoś przyjaznego frameworka, było by mi znacznie łatwiej. Dlatego, że:
1. na napisanie gry miałem około 4 tygodni :P (zmiana tematu + dziwne niezgodności czasowe między uczelniami :o)
2. nie znałem php obiektowego
3. wole poznawać język od środka, nawet pisząc coś co już istnieje niż używać gotowych rozwiązań, bo gdy mój kod się sypnie to zazwyczaj od razu wiem gdzie szukać błędów, a w przypadku "gotowców" to już różnie bywa
4. nie miałem czasu poznawać jeszcze któregoś frameworka, a nie daj boże zmieniać go jeszcze w trakcie realizacji projektu :)
Gra chodzi :) co prawda nikt w nią nie gra bo nie mam funduszy na grafika no ale to inna bajka :P
Wracając do tematu.
Problemy zaczęły się gdy przeniosłem się z Politechniki Świętokrzyskiej na Politechnikę Poznańską. Aby załapać się do pracy w Poznaniu trzeba umieć posługiwać się którymś z frameworków (zazwyczaj zend, symfonia lub smarty).
Szczerze, to interesuje mnie praca w pewnym serwisie aukcyjnym. Na rozmowie w Allegro zapytano mnie o znajomość smarty. Z racji że nie używałem żadnego frameworka stwierdziłem, że chyba czegoś się trzeba w końcu nauczyć, bo bida.
Naukę smarty zacząłem od "zadania domowego" od Allegro, które dostałem po rozmowie. Smarty spodobało mi się ale tylko dlatego, że oddziela kod od grafiki. To było dobre. Nic nie ingerowało w moje dziwaczne pomysły podczas kodowania. Moim zdaniem bardziej wartościowy programista to taki który umie napisać funkcje dodaj, odejmij, obsłuż, skasuj, zamień, wyślij i połączyć ich funkcjonalność od programisty, który zna tylko to_jest_funkcja_ktora_robi_wszystko, ale co tam w środku siedzi to już nie ma pojęcia.

Ok bo się rozpisałem :) Wracam do głównego wątku mojego pytania.
Ostatnimi czasy wpadł mi pomysł na kolejną grę pod przeglądarkę. Pomysł dość innowacyjny i ciekawy, dlatego też chciałbym spróbować napisać ją już według jakichś "schematów" używanych przez większe firmy. Oczywiście w PHP5 :) Skończyłem wstępnie prace nad bazą danych i przyszedł czas na kodowanie. Zastanawiam się teraz czy użyć jakiegoś frameworka czy pisać "po staremu". Na pewno będę używał smarty, gdyż chcę oddzielić stronę graficzną od kodu, ale co do kodu to nie jestem przekonany. Czym powinienem się kierować przy wyborze pierwszego frameworka. Na co zwracać uwagę ?Paweł Podlasiński edytował(a) ten post dnia 21.08.08 o godzinie 16:52
Krzysztof P.

Krzysztof P. Programista, Team
Leader

Temat: Frameworki (PHP/PHP5)

Smarty to nie FW ;]

EDIT:
Co do Zend'a to raczej jest jeszcze zbiór komponentów, które możesz sobie użyć. Symfony (proszę nie odmieniaj) już jest gotowym produktem, wsiadasz i piszesz tylko to co musisz. Co prawda tam jest inny system szablonów (nie Smarty), ale to nie jest aż tak ważne.
Pamiętaj że FW udostępnia Ci od ręki wiele funkcjonalności, jedyne co musisz zrobić na starcie to nauczyć się co jest i jak z tego korzystać. Pamiętaj że jak masz FW to jak ktoś chce z Tobą współpracować bardzo szybko połapie się gdzie co i jak. Do tego jak sam zauważyłeś niektóre firmy mile widzą znajomość danego FW, więc wykorzystanie go w projekcie jest dużym plusem.Michał S. edytował(a) ten post dnia 21.08.08 o godzinie 17:01
Rafał G.

Rafał G. Programista
aplikacji
internetowych

Temat: Frameworki (PHP/PHP5)

Właśnie - jak wyżej. ;P Smarty to tylko templatowy silniczek.

Zainteresuj się wzorcem projektowym MVC. Co do frameworkow to bardzo mi się spodobał CakePHP - jest to mój pierwszy FW. Bardzo łatwo go pojąć i przyjemnie się programuje. Oczywiście nie twierdzę, że jest najlepszy - po prostu to mój pierwszy i mi się podoba.

Pisanie wszystkiego od postaw je IMHO zbyt czasochłonne, bo po co wymyślać koło drugi raz? Po co pisać obsługę sesji czy walidację, jak ktoś już to zrobił? Poza tym piszę pewien projekt w Cake i do tej pory nie napisałem, ani jednego zapytania SQL - wzorzec Active Record to też fajna sprawa.

W Cake można używać Smarty, jeśli Ci nie pasuje ich system szablonów.
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Frameworki (PHP/PHP5)

ja prosze, smarty to porazka, naprawde, udalo mi sie napisac prosty system na regexach o podobnej funkcjonalnosci ktory byl ok 10x szybszy - ale to przeszlsoc. PHP z racji swjego rodowodu jest jezykiem z dobrym wsparciem szablonowym - da sie bardzo latwo odseparowac logike od widoku i nie trzeba do tego smarty.

smarty pozatym jest php4 a php4 juz umarlo, przypominam ze wsparcie sie zakonczylo ;-) pomijajac juz fakt ze smarty to nie zaden FW tylko zwykla warstwa abstrakcji przy czym sa inne lepsze ;-)

Jesli chce sie pan rzeczywiscie nauczyc to pozostaje zend albo symfony, chyba to sa jedyny ciezcy kandydaci na placu boju w tej chwili.

Ja polecam Zend Framework, jest chyba najbardziej przyszlosciowym ze wszystkich frameworkow dostepnych dla PHP w ogole. I dynamika rozwoju jest naprawde imponujaca, nic sie nie moze rownac z nim na tym polu aktualnie.

Co do pisania i poznawania rzeczy od srodka, to ja gwarantuje ze bedzie pan pisal wlasne rozszerzenia , pluginy, filtry, walidatory i inne cuda - na pewno sie pan nauczy i to dobrze.

tylko niech pan nie popelni czestego bledu naszych programistow ktory probuja zastapic zend_view na smarty. to slepa uliczka.

Pozdrawiam
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Frameworki (PHP/PHP5)

Michał S.:
Co do Zend'a to raczej jest jeszcze zbiór komponentów, które możesz sobie użyć.

no to jest troche obrazliwe stwierdzenie ;-) Zend ma luzna strukture ( co mnie sie szalenie podoba), i owszem mozna uzywac czesci komponentow samodzielnie, ale np. uzycie calego kontrolera MVC daje momentalnie dostep do widoku, zarzadzania layoutami ( nie mylic z widokami), i wielu innych bajerow :)

to wszystko mozna zarowno luzno jak i mocno powiazac ze soba. do wyboru do koloru.
Adrian Z.

Adrian Z. IT Project Manager &
PHP Programmer

Temat: Frameworki (PHP/PHP5)

Ja chyba nigdy nie zrozumiem co ludzie widzą w Smarty . Dla mnie to wielkie jak krowa coś robiące to samo co inne mniejsze klasy do templatów . Aplikacja w oparciu o MVC i jakaś prosta klasa np. ja używam MiniTemplator , który jest duuuużo mniejszy i wygodniejszy od Smarty .
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Frameworki (PHP/PHP5)

szczegolnie ze php samo w sobie przy uzyciu tzw. skladni alternatywnej radzi sobie z tym problemem wrecz cudownie.
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: Frameworki (PHP/PHP5)

Marcin Lulek:
Co do pisania i poznawania rzeczy od srodka, to ja gwarantuje ze bedzie pan pisal wlasne rozszerzenia , pluginy, filtry, walidatory i inne cuda - na pewno sie pan nauczy i to dobrze.

tylko niech pan nie popelni czestego bledu naszych programistow ktory probuja zastapic zend_view na smarty. to slepa uliczka.

[OT] Te pan to naprawdę nie wypada ;-)[/OT]
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Frameworki (PHP/PHP5)

racja wojtku,

jak ci sie pracuje w symfony, ja zdecydowalem sie na ZF, ale slyszalem wiele ciekawych opinii nt. tego projektu, podobno wydajnosc siada nawet z akceleratorami z tego co widzialem w roznych benchamrkach.

chociaz to wieksza lub mniejsza bolaczka wszystkich FW.
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: Frameworki (PHP/PHP5)

Generalnie przy dzisiejszym sprzęcie da się przełknąć problemy wydajnościowe. Mi w Symfony pracuje się doskonale, aplikacje tworzy się szybko, wszystko ma ręce i nogi, zawsze mam porządek w projekcie i zawsze jest gdzie szukać pomocy. Przyglądałem się w przeszłości Cake PHP i Code Igniter, w pracy mam do czynienia z dość rozbudowanym i elastycznym frameworkiem, ale koncepcja Symfony podchodzi mi najbardziej.

Dla mnie Symfony jest fajne, bo dużo w życiu napisałem od zera i to był stracony czas. Mogłem go poświęcić na wyjście na piwo. Teraz stronę, którą od zera robiłbym jakieś 2 robocze tygodnie jestem w stanie zrobić w jedną dniówkę i to mi daje sporą satysfakcję.

A jak wiadomo, czas to pieniądz.

Ale nie ukrywam, że na Symfony nie poprzestanę, bo ciągle kusi mnie python i Django, ale jakoś ciągle czasu brak...
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Frameworki (PHP/PHP5)

no mnie tez kusi python, tylko z pylons, coraz czesciej sie pojawiaja glosy ze to wlasnie to jest przyszlosc pyhonowego pisania dla web, a nie django.

Zdaje sie ze programisci grona tak sie wypowiadali, ze jakby mieli cos zmienic to by uzyli pylons a grono to chyba najwiekszy na swiecie projekt oparty o django :-)

tylko ze jakos sie nie moge zabrac do tego :/Marcin Lulek edytował(a) ten post dnia 22.08.08 o godzinie 00:05
Maciej G.

Maciej G. Programista
PHP/JavaScript/Flex
Webdeveloper HTML,
CSS

Temat: Frameworki (PHP/PHP5)

Też bym się chętnie pobawił django/pylonem :). Co do FW, to od roku używam CakePHP i jestem z niego bardzo zadowolony. Szczerze nie rozumiem ludzi, którzy chcą wszystko pisać od zera "bo szybciej znajdą błąd". To straszne marnotrawstwo czasu (a raczej pieniędzy). Korzystając z frameworków możemy liczyć na wsparcie społeczności w wielu aspektach - codziennie wychodzą nowe i użyteczne wtyczki, komponenty, helpery, których użycie jest zazwyczaj dziecinnie proste, a na IRCu również zawsze znajdzie się ktoś życzliwy kto pomoże. Używając FW możemy się skupić na tym co jest rzeczywiście najważniejsze - na rozwiązywaniu problemów.
Teksty typu "nie miałem czasu uczyć się FW" również trochę mnie śmieszą, biorąc pod uwagę to jakiego przyśpieszenia się dostaje już po paru dniach nauki.
Wojtku, ja też odczuwam satysfakcję, gdy widzę projekt męczony przez kogoś przez trzy miesiące, a gdy sam mogę go wycenić na maks. tydzień pracy :).

Temat: Frameworki (PHP/PHP5)

Marcin Lulek:
PHP z racji swjego rodowodu jest jezykiem z dobrym wsparciem szablonowym - da sie bardzo latwo
odseparowac logike od widoku i nie trzeba do tego smarty.

Dokładnie. Nie miałem raczej z tym większych problemów.
Marcin Lulek:
smarty pozatym jest php4 a php4 juz umarlo, przypominam ze wsparcie sie zakonczylo ;-) pomijajac juz fakt ze smarty to nie
zaden FW tylko zwykla warstwa abstrakcji przy czym sa inne lepsze
;-)

A tu mój błąd... Jednakże smarty chyba zostanie z jednego, dość ważnego powodu. Allegro używa smarty i chciałbym się jeszcze ciut podciągnąć ze znajomości, w końcu to może być mój przyszły pracodawca ;) Chociaż zend view również przetestuje

Rafał Grzegorek:
Pisanie wszystkiego od postaw je IMHO zbyt czasochłonne, bo po co
wymyślać koło drugi raz? Po co pisać obsługę sesji czy walidację, jak ktoś już to zrobił?

Wszystko zależy od tego w jaki sposób i przez kogo zostało to napisane :)

Chyba będę skłaniał się w kierunku Zend Framework. Poczytam dokumentacje, poszukam przykładów.

Dziękuje za nakierowanie.

BTW. Widzę, że nie tylko ja siedzę przy kompie do późna :P
Marcin K.

Marcin K. Programowanie jest
moim powołaniem,
Alleluja

Temat: Frameworki (PHP/PHP5)

Jeśli mogę się jeszcze przyłączyć do wypowiedzi, to także skłaniam się do Zend Framework. Skoro firma zajmuje się PHP to kto wie lepiej jak nie ona sama ;), pewnie dlatego projekt ma przyszłość i o wymarcie nie musimy się martwić. Co do symfony bardzo ciekawy Framework dużo moich kolegów właśnie w nim pisze swoje prace, lecz mnie cały czas przeraża w nim trzymanie się standardów plików YML
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Frameworki (PHP/PHP5)

Marcin Lulek:
Michał S.:
Co do Zend'a to raczej jest jeszcze zbiór komponentów, które możesz sobie użyć.

no to jest troche obrazliwe stwierdzenie ;-) Zend ma luzna strukture ( co mnie sie szalenie podoba), i owszem mozna uzywac czesci komponentow samodzielnie, ale np. uzycie calego kontrolera MVC daje momentalnie dostep do widoku, zarzadzania layoutami ( nie mylic z widokami), i wielu innych bajerow :)

to wszystko mozna zarowno luzno jak i mocno powiazac ze soba. do wyboru do koloru.

Nie, to nadal jest zbiór klas. Popatrz na prawdziwe frameworki. Na dzień dobry masz już wszystko gotowe: struktura projektu, konfig, etc. Tylko edytujesz lub dodajesz nowe moduły/kontrolery/akcje - wszystko na tzw SNAP!... jako przykład podam Agavi, która ma wbudowaną obsługę SOAP (tak jak i niby ZF, bo przecież też ma KLASY do tego). Postawiłem w tym aplikację działającą normalnie w sieci (wypluwającą html, json) po czym dodałem kilka linijek do konfigu, troszkę dodatkowego routingu i voila mam w pełni działającą platformę SOAP. A w ZF? prawdopodobnie bym był jeszcze na etapie "gdzie umieścić pliki konfiguracyjne i jakie wydzielić, żeby wypluć Hello World".
Reasumując: Zend to zbiór klas, których integracja we framework leży i kwiczy - żadnych w miarę przemyślanych ustawień defaultowych, zrób se sam albo ssij.

Nie, dziękuję.Alan B. edytował(a) ten post dnia 22.08.08 o godzinie 08:05
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Frameworki (PHP/PHP5)

Marcin Kossak:
Jeśli mogę się jeszcze przyłączyć do wypowiedzi, to także skłaniam się do Zend Framework. Skoro firma zajmuje się PHP to kto wie lepiej jak nie ona sama ;), pewnie dlatego projekt ma przyszłość i o wymarcie nie musimy się martwić. Co do symfony bardzo ciekawy Framework dużo moich kolegów właśnie w nim pisze swoje prace, lecz mnie cały czas przeraża w nim trzymanie się standardów plików YML

Każdy popełnia błędy, a przy takiej rzeczy jak framework o nie nie trudno. Jak dla mnie ktoś dał ciała w czasie rozwoju ZF.
Radzę spojrzeć na całkiem ciekawy Solar Framework - gdzieś przy wersji 0.6 ZF wydawał się klonem tego fw, a potem drogi się rozeszły. O dziwo SF to już nie jest zbiór klas. to normalny framework z wytycznymi jak uruchomić aplikację, jak ją skonfigurować i w sumie działający na starcie (nie mówię, że mi się podoba, bo jest obżydliwy), a ZF zgubił gdzieś to po drodze.
Marcin K.

Marcin K. Programowanie jest
moim powołaniem,
Alleluja

Temat: Frameworki (PHP/PHP5)

Każdy Framework ma swoje wady i zalety! A który wybrać? proste ten który jest w miarę popularny. Wszystko rozchodzi się o kasę. Jeśli chciałbyś zarobić dużo w krótkim czasie to będziesz używać takiego Framework-a na który jest branie. Wystarczy wejść na stronę ze zleceniami np. http://zlecenia.przez.net i sprawdzić ile jest konkretnych ofert. Obenie górują: Symfony,Zend Framewok, CakePHP i w tym zakresie proponuję rozwój. Niemniej jednak Alanie dziękuję za wspomnienie o Solar Framework.
Pozdrawiam
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Frameworki (PHP/PHP5)

Zapomnij o Solar - koszmar :)

Z trojga złego polecam Symfony - oparte o nieistniejący już fw Mojavi. Świetna architektura, mnóstwo generatorów - szybko się piszę.

Sam używam Agavi, jednak dokumentacja tegoż leży (dużo czasu spędziłem nad źródłami, żeby go zrozumieć).Alan B. edytował(a) ten post dnia 22.08.08 o godzinie 08:53
Marcin Lulek

Marcin Lulek Programista -
WebReactor

Temat: Frameworki (PHP/PHP5)

Alan B.:
Nie, to nadal jest zbiór klas. Popatrz na prawdziwe frameworki. Na dzień dobry masz już wszystko gotowe: struktura projektu, konfig, etc. Tylko edytujesz lub dodajesz nowe moduły/kontrolery/akcje - wszystko na tzw SNAP!...

no nie siej dezinformacji, ZF tez ma swoja strukture itp.masz klasy ktore to wszystko lacza, np. klasy kontroloerow (od razu masz tam zintegrownay rendering widokwo itp). roznica polega na tym ze mozesz sobie dostosowac to wszystko w razie potrzeby.

zf 1.6 to nie to samo co 1.0.
Postawiłem w tym aplikację działającą normalnie w sieci (wypluwającą html, json) po czym dodałem kilka linijek do konfigu, troszkę dodatkowego routingu i voila mam w pełni działającą platformę SOAP. A w ZF? prawdopodobnie bym był jeszcze na etapie "gdzie umieścić pliki konfiguracyjne i jakie wydzielić, żeby wypluć Hello World".

Widze ze po prostu nie pracowales z zendem ;-) warto zweryfikowac poglad na wersji rozwojowej. szczegolnie ze ja nie musze sie bawic z zadymi konfigami w ogole zeby sobie dodac moduly i kontrolery. takze jesli ty masz swoje ustawienia defaultowe, a ja nie musze NIC konfigurowac to nie wiem o co kopie kruszyc. wszystko sie rozbija o to co nam pasuje i z czym nam wygodnie. pomijasz np. to ze symfony jest ok 3-4x wolniejszym w dzialaniu fw, czyli koszta infrastruktury wzrastaja. Trzeba wiecej roznych wlasciwosci fw brac pod uwage.
Reasumując: Zend to zbiór klas, których integracja we framework leży i kwiczy - żadnych w miarę przemyślanych ustawień defaultowych, zrób se sam albo ssij.

ustawienia defaultowe ? no prosze , uzycie dowolnego z FW nie zwalnia z myslenia. pozatym niewiem skonfigurowanie w jakim katalogu maja byc zapisane sesje albo cache to nawet malpa potrafi.Marcin Lulek edytował(a) ten post dnia 22.08.08 o godzinie 09:24
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Frameworki (PHP/PHP5)

Skonfigurować ZF można - nie podoba mi się, że można to robić na trylion sposobów. Juz kiedyś pisałem o tym: widziałem 2 projekty z dwóch firm - obie sobie poustawiały jak chciały i oba się diametralnie różniły.
Np. sam konfig ( plikach). Jedna z firm sobie zrobiła na wszelkie wypadek cache, druga nie. Jedna sobie zrobiła jeden wielki folder na modele (jako konwencja Model_Nazwa) druga narobiła miliard folderów i każdy dodała do include_path.
I kilka innych podobnych...
ZF pozwala na zbyt wiele - w tym rozwiązania nieoptymalne.
Czy ja muszę znć inne frameworki, żeby sobie złożyć z klocków ZF coś konkretnego?

Wchodzę na Nabble, żeby poczytać co w trawie piszczy i często na jakieś pytania widzę odpowiedź - jest w inkubatorze, będzie w 2.0, specyfikacja tego nie przewiduje, albo (i, zgrozo) każdy post odpowiada innym rozwiązanie - jedni lepszym; inni gorszym (zazwyczaj początkujący, który uważają, że masterują w ZF).

ZF to kupa. Odradzam go jako pierwszy framework.

P.S. Daruj sobie odpowiedzi w stylu tych małp.Alan B. edytował(a) ten post dnia 22.08.08 o godzinie 09:44

Następna dyskusja:

Frameworki do ORM w PHP




Wyślij zaproszenie do