laravel

Laravel, czemu programiści go pokochali?

Laravel to framework, czyli szkielet programu, napisany w języku PHP. Został on wydany w 2011 roku i bardzo szybko stał się jednym z popularniejszych rozwiązań tego typu. Jest to oprogramowanie w pełni otwarte (licencja MIT), bazujące na popularnym wzorcu MVC (Model-View-Controller).

Mimo ogromnej popularności, dużo programistów uważa, że Laravel nie jest frameworkiem, któremu warto zaufać. A jak jest naprawdę? W Code Apps używamy naprzemiennie Laravela i Symfony, oba frameworki znamy bardzo dobrze. Postanowiłem więc spisać kilka najważniejszych zalet tego systemu i obalić kilka mitów.

Zapraszam!

Czym jest framework?

Zacznijmy od wyjaśnienia, czym jest w ogóle framework. Jest to szkielet do budowy aplikacji. Frameworki są różne od takich, które są po prostu zestawem bibliotek, które możemy użyć aż po takie, które narzucają nam sposób budowania projektów.

Większość aplikacji składa się z tych samych elementów. Na przykład praktycznie każda aplikacja webowa musi zawierać:

  • Obsługę routeru
  • Obsługę bazy danych
  • Autoryzację użytkowników
  • Bibliotekę do wysyłki e-maili
  • itd.

Gdybyśmy przy każdym projekcie musieli to wszystko robić od nowa, tracilibyśmy bardzo dużo czasu. I tu z pomocą przychodzą nam frameworki. Dzięki nim, programista może skupić się na tworzeniu faktycznych funkcji aplikacji.

Oczywiście, są aplikacje, które wymagają dedykowanych rozwiązań. Ale jednak większość programów śmiało możemy zbudować na frameworku.

laravel

Model-View-Controller

Model-View-Controller, w skrócie MVC, to wzorzec architektoniczny, który pomaga programiście uporządkować strukturę aplikacji.

Wzorzec MVC składa się z 3 części:

  • Model – Model to pewna definicja logiki aplikacji. Najczęstszą formą modelu w aplikacjach webowych jest to, co aplikacja otrzymuje z bazy danych.
  • View – Ten element definiuje jak wygląda nasza aplikacja lub to, co ona zwraca.
  • Controller – Główna logina aplikacji, która przyjmuje dane wyjściowe od użytkownika i reaguje na nie (przekazuje do modelu, widoku czy np. waliduje otrzymane dane).

Zalety frameworka PHP Laravel

Popularność

Obecnie Laravel naprzemiennie z Symfony jest najpopularniejszym frameworkiem w języku PHP. Dzięki czemu programiści mają dostęp do dużej społeczności i wiedzy. Dodatkowo, dużo firm szuka programistów znających ten framework.

Dokumentacja i laracast

Sami autorzy dbają o to, aby poznanie ich produktu było jak najprostsze. Laravel posiada bardzo rozbudowaną dokumentację oraz tutoriale w formie wideo.

Prostota

Moim zdaniem największą zaletą Laravel jest prostota i intuicyjność. Wielokrotnie programiści napotykając jakiś problem, nie muszą nawet zaglądać w dokumentację. Piszą tak jak im się „wydaje”, że powinno być i nagle okazuje się, że to działa. Dodatkowo osoby pracujące nad tym narzędziem zadbały o bardzo dużo różnych funkcji czy opcji, które bardzo ułatwiają pracę programistą. Przykładem jest funkcja back(), która cofa nas do poprzedniej strony. Normalnie, musielibyśmy sami zapisać w sesji poprzednią stronę, odczytać z sesji i przekierować użytkownika. Laravel zrobi to wszystko za nas.

Autentykacja

Ogromna część aplikacji webowych zawiera możliwość założenia konta i zalogowania się do aplikacji przez użytkowników. Laravel posiada wbudowaną autentykację użytkowników, którą dodajemy do naszej aplikacji jedną komendą. Dzięki wbudowanej obsłudze rejestracji, logowania i uprawnień, programiści zyskują bardzo dużo czasu.

Eloquent

Laravel posiada wbudowany system do obsługi baz danych dzięki modelom, które piszemy jako część aplikacji. Fajne i proste w obsłudze rozwiązanie, które bardzo ułatwia tworzenie prostych zapytań.

Query builder

Dodatkowo, Laravel posiada tzw. Query Builder, który umożliwia nam budowanie nawet bardzo zaawansowanych zapytań, praktycznie bez znajomości bazy danych. Za pomocą odpowiednich metod, jesteśmy w stanie pobrać dane z bazy nie pisząc nawet kawałka zapytania SQL.

Artisan

Artisan to linia komend, która bardzo ułatwia pracę programistom. Zamiast robić wszystko ręcznie, wystarczy wpisać odpowiednią komendę i Laravel zrobi daną czynność za nas.

Blade

Szczerze mówiąc nie jestem fanem systemu szablonów Blade. Zdecydowanie wolę system Twig, który jest dostępny we frameworku Symfony. Jedna Blade posiada jedną funkcję, którą programiści bardzo chwalą. A mianowicie, Blade to tak naprawdę tylko nakładka na PHP. Dzięki temu, możemy w szablonach używać PHP, przez co Blade ma dużo większe możliwości. Jak wspomniałem, ja osobiście nie jestem fanem tego rozwiązania, ale warto o tym wspomnieć.

Migracje

Migracje to klasy, które definiują strukturę bazy danych. Super opcja, która pozwala nie tylko zachować porządek, ale też trzymać historię zmian w strukturze bazy danych, która zmienia się wraz z kolejnymi wersjami aplikacji.

Środowisko Laravela

Laravel to nie tylko framework, to cały ekosystem powiązanych z frameworkiem dodatków i programów. Obecnie w ekosystemie Laravela znajduje się 18 elementów, takim jak np.:

  • Nova – Generator panelu administracyjnego do naszej aplikacji.
  • Lumen – Microframework do malutkich aplikacji.
  • Cashier – Moduł do płatności subskrypcyjnych.
  • Dusk – Moduł do testów aplikacji.
  • Passport – Implementacje OAuth2.
  • Scout – Wyszukiwanie full-textowe w bazie danych.
  • Socialite – Logowanie do aplikacji za pomocą kont z Facebook, Twitter, LinkedIn, Google, GitHub, GitLab and Bitbucket.

Niektóre z powyższych dodatków są płatne, jednak czas jaki zyskujemy jest często wart tych dodatkowych pieniędzy.

Laravel vs Symfony

Zarówno Laravel jak i Symfony są bardzo popularne, jednak różnią się dość znacząco. Laravel jest prostszy do nauczenia i dużo więcej rzeczy jest zautomatyzowanych. W Symfony musielibyśmy napisać dużo więcej kodu, aby uzyskać taki sam efekt jak w przypadku Laravela. Plusem Symfony na peno jest Doctrine i to, że Symfony nie wymusza na nas struktury aplikacji. Możemy zrobić po swojemy tylko korzystając z komponentów od Symfony.

Dyskusja na temat plusów i minusów obu rozwiązań to temat na osobny wpis, który napewno niedługo powstanie 🙂

A Ty, po której jesteś stronie? Używasz Laravela, czy wolisz inne rozwiązania?

Skomentuj

Zapisz się do mojego newslettera, jeśli chcesz dostawać maile na temat programowania, freelanceringu, cyfrowego nomadyzmu i prowadzenia firmy powoli.

Trwa zapisywanie na listę mailingową...

Dzięki, do usłyszenia niedługo! :) 

Michał Molenda

Michał Molenda

Prowadzę firmę Code Apps, w której wraz z zespołem tworzymy dedykowane oprogramowanie. Od 13 lat jestem programistą a od ponad 6 lat cyfrowym nomadą, czyli łączę pracę z podróżami.

Na blogi poczytasz o programowaniu, byciu freelancerem, prowadzeniu firmy powoli i cyfrowym nomadyzmie.