Język PHP ma nie najlepszą renomę wśród programistów, lecz moim zdaniem dość niesłuszną i wynikającą jedynie z nieznajomości tego języka (lub znajomości którejś ze starszych wersji).
PHP daje ogromne możliwości i przy właściwym wykorzystaniu umożliwia stworzenie dowolnego projektu internetowego (Facebook, Yahoo, Wikipedia, Flickr) – jedynym ograniczeniem jest Twoja wyobraźnia ;)
Aby dobrze programować w PHP należy wiedzieć czego używać, a czego unikać. Język ten powstał kilkanaście lat temu i niestety posiada wiele zaszłości i brzydkich rozwiązań, które musiały pozostać ze względu na zapewnienie kompatybilności wstecz. Nie uprawnia to jednak programistów to ciągłego wykorzystywania funkcji typu mysql_, date czy innych, dla których wymyślono już dużo lepsze zamienniki!
Jak zatem programować w PHP? Przede wszystkim stosować się do dobrych praktyk i konwencji – ogólnie przyjętych przez środowisko programistów, takich, które zostały przetestowane w wielu projektach i doskonale się tam sprawdziły. Zasady te zostały spisane w jednym miejscu i do tego miejsca z wielką przyjemnością odsyłam:
PS. Warto tutaj wspomnieć o podobnej inicjatywie dla front-end developerów (w języku polskim!), która ma na celu wskazanie drogi początkującym programistom, zarażać „zajawką” oraz propagować dobre praktyki używania HTML5, CSS3 i JavaScript:
I jeszcze jedno – projekt OtwartaSiec.pl jest zgodny z ideą sieci, czyli otwarty dla każdego developera :-) Jeśli więc temat nie jest Ci obcy i masz chwilę czasu – nie zwlekaj, dorzuć swoje trzy grosze, pomóż budować otwartą sieć!
PHP jest dlatego momentami taki brzydki, bo objektówka została do niego doklejona później – inaczej niż w przypadku JAVA czy Ruby, które są w pełni obiektowe…
Warto dodać, że PHP nie jest wcale takie wolne jak może się wydawać, bo wszystkie syntetyczne benchmarki (zwłaszcza NODE.JS) robione są pod konkretne wnioski ;)
Tak jak wspomniał @procek zmorą PHP jest jego historia. Przez to mamy pomieszaną składnię obiektową ze strukturalną.
Mogliby twórcy w końcu to ogarnąć, nawet kosztem kompatybilności wstecz :)
@lukasz – nie bardzo da się to zrobić… Mamy hostingi współdzielone na których z dnia na dzień, ktoś wrzuci PHP 7.0 na którym wszystko się rozleci? Bez zachowania kompatybilności wstecznej nie da się rozwijać języka, bo taka przesiadka spowodowałaby przejścia na inne platformy… Choć owszem – można zrobić to tak jak choćby w jQuery – mamy wersję 1.7, która wprowadza sporo nowości – choćby .on(), ale zachosuje działanie .bind() i .live() – któraś następna wersja będzie pozbawiona tych starych metod i będzie ok, bo wszyscy zdążą przystować kod. Na front-endzie jest jednak nieporównywanie łatwiej, bo:
a) dostarczamy bibliotekę w takiej wersji jak chcemy
b) platforma uruchomieniowa (tutaj interpreter JS) strawi wszystko :)
@Procek
Owszem nie można tego zrobić z dnia na dzień, ale można właśnie zrobić jak mówisz, małymi kroczkami. Nie ma przeszkód by tworzyć obiektowe „wersje” funkcji zachowując stare. Gdy już relatywnie mało serwerów będzie zawierało starsze wersje PHP można powoli wycofywać strukturalne funkcje (Zresztą wyginęłyby śmiercią naturalną :)).
Główną myślą tego wpisu było: PHP jest dlatego takie brzydkie, bo programiści brzydko piszą. Owszem, mamy zaszłości z PHP 4, ale nikt tego nie każe używać po 10 latach od wprowadzenia, skoro w międzyczasie pojawiły się lepsze rozwiązania :-) I na tych dobrych rozwiązaniach wystarczy się skupiać, a żadnego dodatkowego języka do szczęścia nie będzie potrzeba (mowa o back-endowych na potrzeby sieci Web :)).
Jak byście poszperali po forach, pogadali z programistami innych języków to szybko byście zauważyli że
każdy język ma środowiska w których jest opluwany ;]
Przydatne linki, jak i inne artykuły na stronie ^^ Wrzucam do RSSów
lukasz – i tak chyba właśnie jest robione. Przestarzałe funkcje otrzymują status „deprecated”, a potem są usuwane z nowych wersji. Niestety trwa to bardzo wolno a i sam język jakoś się zatrzymał chyba w rozwoju?
@procek Sorry ale trzymanie poważniejszych stron na hostingach współdzielonych i poźniejsze pretensje o jakieś krzaki to nie jest profesjonalizm tylko jakaś prowizorka niezależna w dodatku od języka!
@Maniek: od kilku lat trzymam kilka swoich stron na współdzielonym serwerze + kilkanaście stron klientów. Nie miałem jeszcze z tym żadnych problemów… (nie mówiąc o tym że nawet gdyby pojawiły się problemy to mam zautomatyzowany backup co 24h).
Choć pewnie wszystko zależy od tego, o jak poważnych stronach mówimy. Poza tym mając swojego dedyka/vps musisz wszystko kontrolować samodzielnie, na bieżąco aktualizować i pilnować. Mając współdzielony serwer często czuwają nad tym profesjonalni administratorzy, których pracą jest tylko to zadanie.
Prawdą jest, że PHP toczy za sobą piętno języka strukturalnego. Jednak wraz z upływem czasu i nowymi wersjami, wśród młodego społeczeństwa problem ten się zaciera. PHP jest moim ulubionym językiem i to że ma wielu przeciwników nie jest dla mnie ważne. Liczy się to że przez tyle lat, nie jest językiem na straconej pozycji, lecz językiem, który wciąż się rozwija i zostają wydawane jego nowe wersje. Warto zwrócić uwagę, że w oparciu o niego powstały bardzo dobre Frameworki.
Link do tego konkretnego tematu, znalazłem bezpośrednio w Google. Oczywiście wpis jest stary, ale musiałem dodać swoje 3 grosze w obronie języka :) mam nadzieję że ten Blog nie umarł i twórczość będzie jeszcze kontynuowana.
Pozdrawiam serdecznie
PROGer
Od czegoś trzeba zacząć :) Wiele osób właśnie stawia na php np. przed rozpoczęciem nauki Test Data Driven. Wiadomo, że nie można przeskoczyć niektórych rzeczy po prostu