To nie jest wojna.

Frameworki PHP

To nie jest post o wojnie w PHP`ie. To nie jest post o najlepszym stacku technologicznym. To jest post o frameworkach.

Każdy kiedyś zaczynał lub zacznie z nimi przygodę. Ja w sumie nie tak dawno. Zanim zacząłem programować we frameworkach, musiałem nauczyć się podstaw. Na początku poznałem proceduralny PHP. Składnia jest dość prosta, intuicyjna. Wiele projektów po dziś dzień korzysta z takiego rozwiązania.

Potem przyszedł czas na bardziej elastyczne rozwiązanie. Z biegiem czasu, pojawia się nowa wersja php`a, a wraz z nią OOP. Czym jest ten enigmatyczny skrót? To akronim object-oriented programming. Struktura i zależności są tutaj – moim zdaniem – bardziej uporządkowane.

Główną zasadą kodowania przy takim modelu jest podejście do pojedyńczej zmiennej jak do obiektu. Do OOP jeszcze wrócę na blogu, tym razem chcę się skupić głównie na frameworkach. Mimo to, chciałem pokazać, jaką ścieżkę pokonałem, ucząc się po dziś dzień pracy z frameworkiem.

W jednym z wcześniejszych postów, pisałem już o tym, przed jakim dylematem stają młodzi koderzy. Tym razem kolejne wyzwanie, ale dla backend developera.

Przyjrzyj się temu wykresowi:

Wykres Frameworków PHP

Z tego wykresu wynika, że frameworków jest wiele. Pytanie: który wybrać?

Nie jest to łatwa decyzja. Jeśli mogę podpowiedzieć, to w prywatnych projektach wybierz ten, który znasz bardzo dobrze lub chcesz nauczyć się nowego. W firmie to już bardziej złożona decyzja. Wybór zależy od projektu, przedsiębiorstwa i zespołu. Ja w pracy używam Symfony w wersji 3, w indywidualnych projektach  – Laravel.

Dlaczego koderzy sięgają po frameworki? Główna ich zaletą jest przede wszystkim możliwość podzielenia kodu odpowiedzialnego za konkretne obszary w aplikacji. Można w bardzo łatwy sposób odróżnić warstwę logiczną od warstwy prezentacji. Mogę pokusić się też o stwierdzenie, że frameworki przypominają nieco budowanie z klocków skomplikowanej konstrukcji, przy czym każdy kształt i kolor  danego klocka odpowiada za efekt na stronie.

Przed prezentacją każdego z popularniejszych, warto zauważyć, że frameworki nie są aplikacjami w pełnym tego słowa rozumieniu. To zbiory reguł, pewnych gotowych schematów.

Laravel

Od niego zaczęła się moja przygoda. Jego twórca mówi o nim: „Framework PHP dla internetowych artystów”. Laravel to ekstremalnie szybkie aplikacje oraz łatwy próg wejścia. Niektórzy twierdzą, że uczy złych nawyków. Jednak warto go poznać, żeby mieć później porównanie.

Laravel jest oparty o wzorzec MVC (model-view-controller). Łączy to, co najlepsze w innych frameworkach w jedno rozwiązanie. Wzorce zostały zaczerpnięte nie tylko z projektów PHP, ale także Ruby on Rails, ASP.NET i Sinatra.

Laravel wychodzi na czoło stawki, będąc obecnie najpopularniejszym frameworkiem PHP.

Symfony

Z takiego rozwiązania korzystam na co dzień w pracy. To potężny, jak i  najpopularniejszy framework w Polsce. Tu wszystko gra ze sobą dobrze, jak w orkiestrze symfonicznej ;) Komponenty PHP, filozofia oraz społeczności. 

Symfony także oparte jest na wzorcu programistycznym MVC.

Szeroko mówi się o tym, że Symfony nie jest zbyt przystępnym frameworkiem do nauki ze względu na poziom trudności. Sytuację jednak poprawia bardzo szeroka dokumentacja i rozbudowana społeczność.

W Internecie aż huczy o wojnie pomiędzy Laravelem i Symfony – ja w tym wpisie odcinam się od tej gorącej dyskusji.

CakePHP

Z nim możesz „piec” szybciej i solidniej. Współczesny framework PHP 7 oferuje elastyczną warstwę dostępu do bazy danych i potężny, skalowalny system. 

CakePHP jest kompatybilny ze starszymi wersjami PHP. Posiada integrację bazodanową opartą o Active Record. Tak, jak w Laravel. Wbudowana obsługa CRUD’a ułatwia pracę.

Zend

Korporacja Zend zrobiła wiele dobrego dla PHP, jakiego znamy dzisiaj. Jednak framework ten nie jest już tak często używany, jak kiedyś. Dziś to profesjonalny framework PHP, współpracujący z PHP 7.

Codeinginter

Zestawienie zamyka – moim zdaniem – dość potężny framework, zajmującym tym samym bardzo mało. Zbudowany jest dla developerów potrzebujących prostego i eleganckiego rozwiązania do budowy pełnoprawnych aplikacji. 

CodeIgniter także oparty jest na MVC. Posiada też relatywnie mniej funkcji w porównaniu z innymi frameworkami – co czynni go lżejszym i szybszym.

Przed wyborem jednego z nich – pamiętaj: framework to tylko narzędzie!

A Ty jakiego używasz w pracy i prywatnie? Odpowiedz lub podziel się swoją opinią w komentarzu poniżej.

Rafał Fidurski