Który PHP Framework warto wybrać na początek?
Przed wyborem frameworku, musimy odpowiedzieć sobie na trzy ważne pytania. Co to jest PHP framework, do czego służy i czy naprawdę go potrzebujemy.
Co to jest PHP framework?
Framework to połączony zbiór narzędzi, bibliotek oraz skryptów, uwarunkowany przez jedną konwencję programistyczną w celu ustandaryzowania, przyśpieszenia pracy i rozwiązania podstawowych komplikacji za programistę.
Gdyby nie PHP frameworki to przy każdym osobnym projekcie musielibyśmy się martwić o zaawansowaną i bezbłędną obsługę baz danych, przyjazne URLe, zarządzanie sesją, wysyłanie wiadomości e-mail oraz setki innych mniejszych lub większych formalności, które są uniwersalne i nie powinny zajmować naszego czasu. Nie musimy się tym w ogóle tym martwić, dzięki gotowej bazie projektu. Mamy czas by skupić się na ważniejszych zagadnieniach, a nie na powtarzalnych czynnościach, których i tak nie zrobilibyśmy tak dobrze, jak całe community które cały czas korzysta i udoskonala framework.
Jakie są dostępne PHP Frameworki?
Jeśli już poznaliśmy zalety używania frameworków, warto przemyśleć, który wybrać do pracy. Jeśli chcemy poeksperymentować i mamy czas to warto poznać podstawy każdego i wybrać ten, który odpowiada nam najbardziej. Jednak zazwyczaj nie mamy tyle czasu wolnego i lepszym rozwiązaniem będzie poznanie jednego frameworka, ale dokładnie.
Przeanalizujmy plusy i minusy najpopularniejszych PHP frameworków, w szukaniu tego, od którego najlepiej rozpocząć naszą przygodę i który będzie najlepiej spełniał nasze potrzeby.
Obecnie najpopularniejsze PHP frameworki to: Laravel, Symfony, CodeIgniter, Yii, Zend, CakePHP, Phalcon, Slim.
Omówmy krótko wszystkie rozwiązania:
Laravel
Najpopularniejszy na tę chwilę framwork PHP, pomimo, że powstał dopiero w 2011 roku. Wokół Laravela stworzony został olbrzymi ekosystem usług, rozwiązań i materiałów szkoleniowych (wystarczające jest samo wspomnienie o ogromnym kompendium wiedzy jakim jest serwis Laracasts - gorąco polecamy wszystkim programistom PHP, nie tylko tym, korzystającym z Laravela).
Laravel posiada własny ORM - Eloquent, własny system template’ów - Blade, ogrom gotowych rozwiązań out-of-the box m.in. autoryzacji, obsługa cache, wielu systemów plików, kolejek itp.
Symfony
Jednym z popularniejszych frameworków PHP, składający się z wielu niezależnych modułów. Na bazie tych modułów funkcjonuje całkiem sporo innych rozwiązań, chociażby Drupal, forum phpBB, a także Laravel.
Wykorzystanie modułów z Symfony, pozwala przyspieszyć swoją pracę w każdym aspekcie prac nad serwisem internetowym.
Wokół Symfony zgromadziła się również bardzo duża społeczność ze sporą liczbą udanych wdrożeń dużych skalowalnych serwisów.
Codelgniter
Codelgniter to całkiem lekki projekt, zajmujący ledwie 2MB, z mega prostą konfiguracją oraz bardzo dobrą dokumentacją. Powstał w 2006 roku, jednak nie rozwijał się w takim tempie jak inne frameworki.
W pewnym momencie było ryzyko, że projekt umrze, jednakże od 2 lat prężnie się rozwija.
Codelgniter nie używa wielu rozwiązań, które były w PHP 5.6 i PHP 7, dzięki temu nie jest kompatybilny nawet z wersją 5.2.4 (której nie polecamy używać), ale jest to zaleta, kiedy nie mamy wyjścia i musimy korzystać z serwerów współdzielonych ze starą konfiguracją, której nie można aktualizować. Ale oprócz tego jest mega szybki oraz pozwala na ogromną swobodę w stylu programowania (co jest zaletą, jak i wadą)
Yii
Yii jest frameworkiem który stawia na szybkość i prostotę. Jak i inne frameworki, pozwala generować wiele obiektów/plików za nas oraz pozwala na automatyzację podstawowych zadań jak np. pamięć podręczna, autoryzacja, testy, tłumaczenia itp.
Jest mocno zintegrowane z jQuery, dzięki czemu pozwala na unikalną integrację front-endu i back-endu przez Ajax.
Zend Framework
Zend jest całkiem rozbudowanym, aczkolwiek skomplikowanym frameworkiem. Posiada dużo udogodnień jak wbudowany drag&drop edytor lub debugowanie kodu online. Głównym plusem jest jego wydajność przy dużych projektach.
Jednakże przez mnogość konfiguracji oraz możliwości usprawnień wydajności, na pewno nie jest najlepszym rozwiązaniem na początek.
CakePHP
CakePHP jest dość starym rozwiązaniem w porównaniu do tego zestawienia, ale wciąż bardzo popularnym. Ma bardzo dobrą dokumentację, jest prosty w użyciu, ale również wykorzystuje sporo nowoczesnych konceptów PHP jak np. przestrzenie nazw.
Phalcon
Bardzo ciekawym rozwiązaniem jest Phalcon, który stworzony został w 2012 i w odróżnieniu od reszty frameworków, napisany został w C i C++, w celu osiągnięcia największej wydajności (samo PHP jest napisane w C++, chociaż PHP7 w niektórych testach jest nieco szybsze od czystego C++). Wpływa to też na rodzaj kodu, który jest bardziej niskopoziomowy, pozbawiony abstrakcji, co zmniejsza liczbę używanych zasobów, ale i czytelność kodu.
Mimo wszystko jeśli zależy nam przede wszystkim na szybkości to jest to na pewno ciekawe rozwiązanie, ale w kontekście API (gdzie kluczem jest wydajność) bardziej odpowiadającym rozwiązaniem mógłby być ostatni framework w tym zestawieniu.
Slim
Slim jest mikro frameworkiem, z minimalną liczbą udogodnień, który za główne cele ma przede wszystkim szybkość i wydajność. Głównym Zastosowaniem są API oparte na REST (w skrócie usługi sieciowe dokonujące operacji i zawracające dane na bazie żądań opartych na protokole HTTP), gdzie nie potrzeba wielu rozwiązań stosowanych w rozbudowanych serwisach.
Slim ma oczywiście takie podstawy jak obsługę pamięci podręcznej, routingu, zabezpieczenia sesji i ciasteczek. Oprócz API można w nim zbudować także pełnoprawne serwisy internetowe, ale jednak w porównaniu do innych frameworków wiele usprawnień nie będzie dostępnych, ze względu na jego naturę.
Innymi przykładami mikroframeworków są:
• Lumen (oparty na Laravelu)
• Silex (oparty na Symfony)
• Flight
• Wave
• Limonade
W takim razie jaki PHP framework wybrać?
Aby odpowiedzieć sobie na to pytanie i móc wybrać odpowiedni framework należy odpowiedzieć na pytanie co jest dla nas ważne, oraz na czym nam zależy i czym dobry framework powinien się charakteryzować.
Wszystkie wyżej wymienione rozwiązania mają podobny zbiór funkcjonalności i gotowych bibliotek. Różnią się wielkością społeczności, dostępnych bibliotek zewnętrznych, szybkością rozwoju i liczbą ofert pracy na rynku.
Jeśli spojrzymy na te wymagania to wyłoni nam się kilku faworytów:
• Laravel - najpopularniejszy framework na świecie, bardzo przyjemna składnia, bardzo prosty do nauki, stabilnie rozwijany, nowoczesny, z bardzo dużą i zaangażowaną społecznością.
• Symfony - Bardzo popularny przede wszystkim w Polsce, większość ofert pracy dla programistów PHP dotyczy nadal Symfony.
• Codelgniter - bardzo prosty, idealnie nadający się do nauki i do prostych projektów, świetny do rozpoczęcia przygody z frameworkami by poznać wzorzec MVC i podstawowe koncepty.
Podsumowanie
Dowiedzieliśmy się czym są w ogóle frameworki PHP, poznaliśmy najpopularniejsze na rynku, znamy różnice oraz czym najlepiej się kierować przy wyborze. Dobór odpowiadającego frameworka jest ważny, ponieważ może zaważyć na losie projektu, a niekiedy nawet na losach całej firmy, ale tak naprawdę nie ma złych rozwiązań. Większą część projektów zaimplementować można w każdym frameworku. A im więcej doświadczenia będziemy mieli w jednym, będziemy mieli więcej gotowych rozwiązań zrobionych tym nasza pewność odnośnie prawidłowego działania będzie większa a co ważniejsze będziemy tworzyli projekty szybciej.
Sam wybór frameworku jest również bardzo ważny, ale ważniejszym jest poświęcenie czasu na jego poznanie, na szukanie dobrych wzorców oraz tworzenie coraz to bardziej złożonych projektów w nim.
Osobiście rekomenduję Laravela, jest to framework stawiający na przyjemność programowania, rozwiązujący wiele często spotykanych zagadnień a co najważniejsze jest najszybciej rozwijającym się frameworkiem który ma bardzo zaangażowaną społeczność, chętnie dzieli się swoją wiedzą oraz rozwiązuje problemy innych.
Kończąc chciałbym jeszcze raz podkreślić - nie marnujcie miesięcy na szukanie idealnego frameworka na początek - wybierzcie to rozwiązanie które uważacie za najlepsze na pierwszy rzut oka. Zaufajcie sobie, a nie pożałujecie. Następnie przygotujcie się na długą podróż po doświadczenie i stawanie się ekspertem w używaniu wybranego przez Was rozwiązania. Powodzenia!
Artykuł powstał dla magazynu Marketing i Biznes.