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:
Laravel – https://laravel.com
Symfony – https://symfony.com/
CodeIgniter – https://codeigniter.com/
Yii – http://www.yiiframework.com/
Zend – https://framework.zend.com/
CakePHP – https://cakephp.org/
Phalcon – https://phalconphp.com/pl/
Slim – https://www.slimframework.com/
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ą:
Lumen (oparty na Laravelu – https://lumen.laravel.com)
Silex (oparty na Symfony – https://silex.symfrony.com)
Flight – http://flightphp.com/
Wave – https://www.waveframework.com/
Limonade – https://limonade-php.github.io/
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!
Źródło: https://marketingibiznes.pl/it/php-framework-poczatek-ktory-warto-wybrac/