Dzisiaj rozpoczynamy nową serię artykułów. Poświęcimy trochę czasu na analizę (rynku, upodobań, wad i zalet) frameworków PHP. Zbadamy, co jest teraz na topie, co zyskuje coraz większe grono sympatyków. Spojrzymy na temat pod różnymi kątami. Postaramy się być możliwie najbardziej obiektywni. Gdyby szło to zbyt topornie, zawsze możecie wybuczeć ‚konferansjera’ w przerwie pomiędzy rundami 🙂
Zatem do rzeczy. Nie dawno spotkałem się z dość kontrowersyjnym stwierdzeniem „Framework nie jest potrzebny – sam tworzę, sam konserwuję, więc wiem jak to wszystko funkcjonuje”. Przyznam szczerze, że takie stwierdzenia słyszałem zbyt dawno, zbyt dawno były one na porządku dziennym i dlatego stwierdzam jasno, że osoba je wypowiadająca i konsekwentnie realizująca ich przesłanie, jest niestety zacofana. Dlaczego? A to dlatego, że czasy, w których witryna opierała się o 4 strony i bazę danych pokroju 4 tabelek minęły i nie powrócą. Obecne witryny – duże i wymagające ogromu pracy – wiążą się już nieśmiesznym rozmiarem kodu źródłowego. O ile przy sporej koncentracji programisty, projektanta i menadżera projektu można nad nimi zapanować, o tyle nie jest to możliwe na dłuższą metę, a o zmianie zespołu tworzącego można zapomnieć.
Od tego są frameworki. Mają ułatwić pracę, ustrukturyzować aplikację i w mniejszym lub większym stopniu wesprzeć tworzenie kodu. A więc zaczynajmy prezentację „zawodników”!
Na początek mały wykres
Poniżej widzimy trend, jaki następował w latach 2004-2014. Nie potrzeba dużo czasu, by wysnuć kilka celnych wniosków.
1) Popularność Zenda maleje – szczerze nie ma co się dziwić 🙂 Z jednej strony przez to, że jest to full-stack-framework wielu programistów będzie go bronić. Jednak wyłamię się z tej opinii. Dobry produkt broni się sam, a tutaj widać, że lata świetności przemijają. Lata, w których nie było z czego wybierać przeminęły i całe szczęście. Nie trzeba się męczyć z tym „kolosem” (ukłony dla osób, które poznały Zenda).
2) Symfony również nie jest łatwym frameworkiem strukturalnie. Jest specyficzny, a mimo to utrzymuje pewną równowagę na rynku. Wśród frameworków istnieje wiele opierających się (lub w całości zbudowanych – tak zwane forki) na Symfony. Zaliczamy do nich między innymi: Kohana, Laravel (czerpie on mocno z Symfony, lecz nie jest forkiem).
3) Mniej więcej w 2008 roku nastał czas upraszczania. Maksymalnie proste podejście do tematu aplikacji PHP wykorzystywane w CodeIgniter pozwalało małym nakładem pracy poznać API i stworzyć własną aplikację.
4) Czas płynął i z czasem pojawił się inny kompleksowy framework – Yii. Dynamiczny wzrost popularności do 2013 roku przyczynił się do spadku notowań CI, SF i jeszcze bardziej ZF. Obecnie Yii jest w stanie równowagi.
5) Od 2012 roku w pogoń za Yii rzucił się Laravel i trzeba mu oddać, że zyskuje coraz więcej zwolenników. Zyskuje popularność na nowych rynkach. Rozprzestrzenia się powoli, ale przekonuje do siebie programistów-pasjonatów-poszukiwaczy. Obecnie ma małą przewagę nad Yii – jest świeższy, ale…
Podsumowanie
… Yii szykuje lada moment premierę stabilnej wersji Yii 2 – obecnie znajduje się w wersji beta. Muszę przyznać, że nadgania stracony czas. A może niecałkowicie stracony? Gdyby przyjąć, że dobrą strategią jest uczyć się na doświadczeniach innych, to może nie jest tak źle. Nie da się ukryć, że wyczekujemy stabilnej wersji (być może trafi się na ostatnią rundę pojedynku 🙂 ). Pierwszą rundę – rozpoznawczą – gdzie zawodnicy badali dystans i swoje możliwości, uznaję za remisową. Widzimy się niebawem. Pozdrawiam!
Ciekawe porównanie i ciekawie się to zmieniło. Teraz po trzech latach (rok 2017), wygląda Laravel wyrwał jak szalony. A mój ulubiony framework Yii2 tak jakby załapał zadyszki. To pewnie przez brak programistów tego frameworka przez co możliwe że utrudnia to development projektów.
Yii2 działa już w wersji 2.0.10 funkcjonuje pięknie.
W Polsce jest bardzo małe zapotrzebowanie akurat na dobrych programistów w YII. Szkoda, chociaż jeśli jeszcze raz miałbym wybierać to i tak wybrałbym YII zdecydowanie. Całkiem niedawno przygotowywałem się do prezentacji dot. tego frameworku i jeszcze raz doszedłem do wniosku, że z YII mogę zrobić wszystko. Stworzenie CMS’a (trochę dziwnie nazwanego backend-app) to tak naprawdę „chwila” pracy wraz z dodaniem własnych restrykcji i powiązań. Możliwość rozszerzania modułów, tryby pracy, łatwe zarządzanie migracjami oraz mnóstwo widżetów … mega sprawa.
Kiedy z kolegą konsultowałem, czy i jak widzi możliwość postawienia CMS’a w Laravelu na bazie widżetów od Kartika, to powiedział, że nie podjąłby się tego bowiem Laravel kuleje jeśli chodzi o widżety.
Gwoli jasności … w ogóle nie dyskryminuję Laravela, ale szczerze nie wykorzystałbym go do dużych serwisów. Znowu do małych serwisów wydaje mi się, że ma większą konkurencję w gotowych CMS’ach WordPress/Drupal – niemal każdy mały serwis można na nich zbudować.
Kohana jest forkiem CodeIgnithera a nie Symfony, zaś Laravel to takie dziecko Symfony. Ale jakby na to wszystko nie patrzeć to Symfony jest (przez pryzmat rynku pracy, jak również i większych projektów) chyba jedynym wartym zainteresowania, natomiast fakt faktem jest szalenie trudny. Z tych trendów może wynikać, że za 5 – 10 lat to i Laravela może spotkać to co Kohanę, ta jest w wersji 3.3.6 i obecnie jest to najnowsza wersja, praktycznie nie rozwijana.
Jest też faktem że niektóre frameworki naśladują inne frameworki, tak jest np. z FuelPHP, który ma pewne cechy z Kohany jak i z Railsów, jest też faktem że do innych frameworków podpina się komponenty z Symfony przy użyciu composera, widzę to po Yii czy innych frameworkach w nowszych wersjach.
Nie widzę w Yii niczego takiego co by mnie skłoniło do przejścia z Kohany v. 3.3, jeżeli już to prędzej przejdę właśnie na Laravela 5.4+, bo ze względu na pewne podobieństwa nie będzie to trudne. I coś wydaje mi się że w niektórych firmach też się przechodzi z Kohany na Laravela albo i na Symfony i raczej chyba to drugie.
Masz rację. Kohana jest forkiem CI. Może przez pomyłkę napisałem o wywodzeniu z Symfony, a może zostałem zwiedziony innymi artykułami. Tak czy inaczej przewalając się przez ten ogrom treści doszedłem do wniosku, że z czasem Kohana była coraz bliżej Symfony. Jednak tutaj ufam całkowicie osobom, które znają ten framework w praktyce.
Każdy z nas ma jakieś predyspozycje. Sam wybierając framework do pracy spędziłem kilka tygodni na analizie, by wybrać ostatecznie YII. Niedługo zacznę przygodę z Laravelem w praktyce. Natomiast jeśli chodzi o Kohanę to mimo wszystko nie zgodzę się z Panem co do kwestii przyczyny braku rozwoju Kohany (tudzież niższe statystyki). Moja hipoteza pokrywa się z pewnym cytatem stąd:
Laravel nie jest ani dzieckiem ani forkiem Symfony tylko po prostu jest zbudowany w oparciu o kilka komponentów Symfony (przecież one są jako stand-alone, można je wszędzie wykorzystać). Drobna różnica.
Ma Pan rację. W tym przypadku jednak będąc drobiazgowym – wykorzystuje kilkanaście komponentów. Nie jest stricte forkiem, ale czerpie z Symfony bardzo mocno.
Bardzo ciekawa dyskusja, ale jak autor zaznaczył wymienione wyżej frameworki służą do tworzenia bardzo dużych serwisów i trochę czasu wymaga ich dobre poznanie. Czy jest jakiś framework, który byłby stosunkowo prosty, tak żeby go mogła poznać w trzy dni osoba nie znająca faktycznych zawiłości realizowanego w praktyce modelu MVC i mógłby służyć do tworzenia witryn 10 razy lżejszych od WordPressa, czyli góra 300kB, w tym mogłoby nie być zaplecza. Przeciętna firma w Polsce nie ma nawet kogoś, kto wie jak obsługiwać WordPressa. a nie potrzebuje wielkich serwisów.
Nie jest aż tak „chudy” framework, ale jeśli ktoś zaczyna przygodę z PHP to miłym początkiem będzie CodeIgniter. Natomiast dla osób kompletnie niezwiązanych z tworzeniem stron internetowych (np. firmowych itp.) są serwisy, które krok po kroku prowadzą do stworzenia strony firmowej. Nawet darmowe szablony w WordPressie się do tego sprawdzą.