Laravel, czemu programiści go pokochali? - Michał Molenda

Laravel, czemu programiści go pokochali?

Laravel to framework, napisany w języku PHP. Został on wydany w 2011 roku i bardzo szybko stał się jednym z popularniejszych rozwiązań.

Laravel, czemu programiści go pokochali?

Laravel

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ę programistom. 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. Jednak 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?

Michał Molenda

Autor wpisu:

Michał Molenda

Od ponad 16 lat jako full-stack developer a obecnie zewnętrzny CTO wspieram firmy w tworzeniu oprogramowania, optymalizacji procesów i kosztów oraz pomagam startupom w dojściu do produkt market fit.

Najczęściej czytane

Programowanie

Rady dla przedsiębiorców, którzy dopiero zaczynają
Rady dla przedsiębiorców, którzy dopiero zaczynają

Każdy przedsiębiorca, który dopiero zaczyna, zastanawia się nad sobą i swoim biznesem. Zobacz rady dla przedsiębiorców z których cały czas korzystam.

Czytaj więcej

Programowanie

Jak zdobyć klientów, poradnik dla freelancerów
Jak zdobyć klientów, poradnik dla freelancerów

Każdy początkujący freelancer czy przedsiębiorca zastanawia się, jak zdobyć klientów. Sposobów jest bardzo dużo zobacz te najbardziej popularne.

Czytaj więcej

Programowanie

Czego nauczyłem się tworząc własne startupy?
Czego nauczyłem się tworząc własne startupy?

Nauka na błędach jest bardzo ważna, ale lepiej uczyć się na cudzych. Zapraszam do wpisu w którym opisuję, czego nauczyłem się tworząc własne startupy.

Czytaj więcej

Zróbmy razem
fajny projekt.

Aby poznać mnie lepiej, odwiedź moje profile w mediach społecznościowych lub po prostu napisz do mnie, abyśmy mogli porozmawiac o Twoim projekcie.

Napisz do mnie
Michał Molenda