PHP Framework na początek. Który warto wybrać?

24.10.2017 AUTOR: Adam Matysiak

Zanim wybierzemy jaki framework dla Ciebie będzie odpowiedni, odpowiedzmy sobie na pytanie co to jest PHP framework, do czego służy i czy naprawdę go potrzebujemy.

Co to jest PHP framework?

Framework to powiązany zbiór narzędzi, skryptów oraz bibliotek, oparty na jednej konwencji programistycznej w celu przyspieszenia pracy, ustandaryzowania i rozwiązania podstawowych problemów za programistę.

Gdyby nie PHP frameworki to przy każdym projekcie musielibyśmy się martwić o bezbłędną i zaawansowaną obsługę baz danych, zarządzanie sesją, przyjazne URLe, wysyłanie wiadomości e-mail i setki innych mniejszych lub większych zagadnień, które są uniwersalne i nie powinny zajmować naszego czasu.

Dzięki skorzystaniu z gotowej bazy projektu, nie musimy się tym w ogóle przejmować. Będziemy mogli się skupić na tym co ważne, a nie na powtarzalnych czynnościach, których i tak nie zrobimy tak dobrze, jak całe community korzystającego i ciągle udoskonalające framework.

Jakie są dostępne PHP Frameworki?

Skoro już poznaliśmy zalety korzystania z frameworków, warto się zastanowić, który wybrać do pracy. Jeśli mamy czas i chcemy poeksperymentować to warto poznać podstawy każdego i wybrać ten, który nam najbardziej się podoba i spełnia nasze potrzeby. Zazwyczaj jednak nie mamy tyle wolnego czasu i lepiej poświęcić cały czas na lepsze poznanie jednego frameworka dokładnie.

Zatem przeanalizujemy plusy i minusy najpopularniejszych PHP frameworków w poszukiwaniu tego, od którego warto rozpocząć przygodę i który będzie najlepiej się nadawał do naszych potrzeb.

Obecnie najpopularniejsze PHP frameworki to:

Omówmy pokrótce wszystkie rozwiązania: 

Laravel

Najpopularniejszy obecnie framework PHP, mimo że powstał dopiero w 2011 roku. Wokół Laravela powstał olbrzymi ekosystem usług i rozwiązań, materiałów szkoleniowych (wystarczy wspomnieć o olbrzymim kompendium wiedzy jakim jest serwis Laracasts – gorąco polecamy wszystkim programistom PHP, nie tylko tym, którzy korzystają z Laravela).

Laravel posiada własny ORM – Eloquent, własny system template’ów – Blade, mnóstwo gotowych rozwiązań out-of-the box m.in. obsługa cache, wielu systemów plików, kolejek, autoryzacji itp.

Symfony

Bardzo popularny framework PHP, składający się z wielu niezależnych modułów. Na bazie tych modułów działa wiele innych rozwiązań, chociażby Drupal, forum phpBB, a także Laravel.

Dzięki wykorzystaniu modułów z Symfony, jesteśmy w stanie znacząco przyspieszyć swoją pracę w każdym aspekcie prac nad serwisem internetowym.

Wokół Symfony również zgromadziła się bardzo duża społeczność z wieloma udanymi wdrożeniami dużych skalowalnych serwisów.

CodeIgniter

CodeIgniter to bardzo lekki projekt, zajmujący zaledwie 2MB, z bardzo prostą konfiguracją oraz świetną dokumentacją. Powstał w 2006 roku, lecz nie rozwijał się w takim tempie jak inne frameworki. Przez pewien czas było ryzyko, że projekt umrze, ale od 2 lat znowu prężnie się rozwija.

CodeIgniter nie korzysta z wielu rozwiązań, które pojawiły się w PHP 5.6 i PHP 7, dzięki czemu jest kompatybilny nawet z wersją 5.2.4 (której oczywiście nie polecamy używać), ale jest to plus, gdy musimy korzystać z serwerów współdzielonych z bardzo starą konfiguracją, której nie można aktualizować. Oprócz tego jest bardzo szybki i pozwala na bardzo dużą swobodę w stylu programowania (co jest zarówno plusem, jak i minusem).

Yii

Yii jest frameworkiem stawiającym na szybkość i prostotę. Podobnie do innych frameworków, pozwala na generowanie wielu obiektów/plików za nas i automatyzację podstawowych zadań jak 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 bardzo rozbudowanym, aczkolwiek skomplikowanym frameworkiem. Posiada bardzo dużo udogodnień jak wbudowany drag&drop edytor czy debugowanie kodu online. Główną jego zaletą jest jednak wydajność przy dużych projektach

Jednakże przez mnogość konfiguracji i możliwości usprawnień wydajności, nie jest on z pewnością rozwiązaniem na początek.

CakePHP

CakePHP jest jednym ze starszych rozwiązań w tym zestawieniu, ale wciąż bardzo popularnym. Posiada bardzo dobrą dokumentację, jest prosty w użyciu, a także wykorzystuje dużo nowoczesnych konceptów PHP jak np. przestrzenie nazw.

Phalcon

Ciekawym rozwiązaniem jest Phalcon, który powstał w 2012 i w odróżnieniu od reszty frameworków, został napisany w C i C++, w celu osiągnięcia najwyższego poziomu wydajności (samo PHP również jest napisane w C++, chociaż PHP7 w niektórych testach jest szybsze od czystego C++). Wpływa to też na rodzaj kodu, który jest bardziej niskopoziomowy, pozbawiony abstrakcji, co zmniejsza liczbę wykorzystywanych zasobów, ale i czytelność kodu.

Mimo wszystko jest to na pewno ciekawe rozwiązanie jeśli zależy nam przede wszystkim na szybkości, ale w kontekście API (gdzie wydajność jest kluczem) bardziej odpowiednim rozwiązaniem może być ostatni framework w tym zestawieniu.

Slim

Slim jest mikroframeworkiem, a więc frameworkiem z minimalną liczbą udogodnień, który ma na celu przede wszystkim wydajność i szybkość. Głównym zastosowaniem są API oparte na REST (w skrócie usługi sieciowe, które dokonują operacji i zwracają dane na bazie żądań opartych na protokole HTTP), gdzie nie nie potrzeba wielu rozwiązań stosowanych w rozbudowanych serwisach.

Slim zawiera oczywiście takie podstawy jak obsługę routingu, pamięci podręcznej, zabezpieczenia sesji i ciasteczek. Oprócz API można w nim stworzyć także pełnoprawne serwisy internetowe, ale w porównaniu do innych frameworków wielu usprawnień będzie brakować, ze względu na jego naturę.

Innymi przykładami mikroframeworków są:

Jaki PHP framework w takim razie wybrać?

Żeby móc wybrać odpowiedni framework dla siebie, trzeba sobie odpowiedzieć na pytanie co jest dla nas ważne, na czym nam zależy i czym dobry framework powinien się charakteryzować

Praktycznie wszystkie w/w rozwiązania posiadają podobny zbiór funkcjonalności i gotowych bibliotek. Różnią się przede wszystkim wielkością społeczności, dostępnych bibliotek zewnętrznych, liczbą ofert pracy na rynku, a także szybkością rozwoju.

Biorąc te wymagania pod uwagę kilku faworytów nam się wyłoni:

  • Laravel – najpopularniejszy framework na świecie, bardzo prosty do nauki, bardzo przyjemna składnia, nowoczesny, stabilnie rozwijany, z bardzo dużą i zaangażowaną społecznością.
 
  • Symfony – najpopularniejszy framework w Polsce, większość ofert pracy dla programistów PHP dotyczy nadal Symfony
  • CodeIgniter – bardzo prosty framework, idealnie nadający się do nauki i do prostych projektów na początku przygody z frameworkami by poznać wzorzec MVC i podstawowe koncepty

Podsumowanie

Dowiedzieliśmy się zatem czym są frameworki PHP, jakie są popularniejsze na rynku, czym się różnią i czym powinniśmy się sugerować w wyborze. Dobór odpowiedniego frameworka jest ważny, bo może zaważyć na losie projektu, a nawet firmy, ale tak naprawdę nie ma złych rozwiązań. Większość projektów można zaimplementować w każdym frameworku. A im będziemy mieć większe doświadczenie w jednym, będziemy mieli więcej gotowych rozwiązań zrobionych, tym będziemy tworzyć projekty szybciej i będziemy mieli większą pewność odnośnie ich prawidłowego działania.

Także wybór frameworka jest ważny, ale jeszcze ważniejsze jest poświęcenie czasu na jego poznanie, na szukanie dobrych wzorców i tworzenie coraz to bardziej złożonych projektów w nim.

Osobiście rekomenduję Laravela, gdyż jest to najszybciej rozwijający się framework, stawiający na przyjemność programowania, rozwiązujący wiele często spotykanych zagadnień i posiadający bardzo zaangażowaną społeczność, która chętnie dzieli się swoją wiedzą i rozwiązuje problemy innych.

Na koniec jeszcze raz chciałbym podkreślić – nie poświęcajcie miesięcy na szukanie idealnego frameworka na początek – wybierzcie to rozwiązanie, które podoba się Wam na pierwszy rzut oka. Zaufajcie instynktowi, a nie pożałujecie. A potem przygotujcie się na długą podróż ku zdobywaniu doświadczenia i stawaniu się ekspertem w użyciu wybranego przez Was rozwiązania. Powodzenia!

Przeczytaj również wywiad z Jakubem Gutkowskim (Blog.Gutek.pl)

Artykuł powstał dzięki:

Coders Lab

Łącząc doświadczenie edukacyjne ze znajomością rynku pracy IT, Coders Lab umożliwia szybkie i efektywne zdobycie pożądanych kompetencji związanych z nowymi technologiami. Skupia się się na przekazywaniu praktycznych umiejętności, które w pierwszej kolejności są przydatne u pracodawców.

Wszystkie kursy odbywają się na bazie autorskich materiałów, takich samych niezależnie od miejsca kursu. Dzięki dbałości o jakość kursów oraz uczestnictwie w programie Career Lab, 82% z absolwentów znajduje zatrudnienie w nowym zawodzie w ciągu 3 miesięcy od zakończenia kursu.


Do góry!

Polecane artykuły

11.06.2019

Wiktor Mazur dołączył do zarządu ...

Zapisz się do naszego newslettera

Wyślij mi newsletter (Możesz się wypisać w każdej chwili).

email marketing powered by FreshMail
 

Subscribe to our newsletter

Send me your newsletter (you can unsubscribe at any time).

email marketing powered by FreshMail
 

Subscribe to our newsletter

email marketing powered by FreshMail
 

Głodny wiedzy? Zapraszamy do sklepu z kursami i ebookami

Sprawdzam