Laravel to bardzo solidny framework PHP.
Dystrybuowany na licencji typu open source, zatem każdy może korzystać z niego bez żadnych dodatkowych opłat.
Do tego jest łatwy w zrozumieniu i nauce. Jest zgodny z wzorcem projektowania Model-View-Controller (MVC). Laravel agreguje i wykorzystuje sprawdzone, istniejące komponenty z różnych frameworków, co w efekcie przekłada się na uporządkowaną, fajnie działającą aplikację internetową.
Kod źródłowy tak zaprojektowanej aplikacji jest bardzo czytelny i łatwy w zarządzaniu. Gdy pojawi się błąd, jesteś w stanie szybko zidentyfikować, w czym tkwi problem. Nie jest to tak oczywiste podczas korzystania z czystego PHP, bez wykorzystania jakiegokolwiek frameworka.
Laravel i dodatkowa funkcjonalność
Laravel oferuje bogaty zestaw funkcjonalności, który zawiera podstawowe cechy frameworków PHP, takich jak:
oraz zapożyczone z innych języków programowania, takich jak Ruby i znany framework Ruby on Rails.
Laravel ma bardzo bogaty zestaw funkcji, które przyspieszą tworzenie stron internetowych.
Jeśli znasz już PHP i to co oferuje w swoim standardowym zestawie, Laravel ułatwi Ci praktycznie każde zadanie związane z tworzeniem aplikacji internetowej. Oszczędza to dużo czasu, jeśli planujesz stworzyć stronę internetową od podstaw. Co więcej, strona internetowa zbudowana z wykorzystaniem Laravela jest bezpieczna, bogata w mechanizmy zapobiegające atakom hackerskim.
Mocne strony Laravela
Laravel oferuje mnóstwo korzyści podczas projektowania aplikacji internetowej od podstaw.
Przede wszystkim, aplikacja internetowa staje się bardziej skalowalna. Dużo łatwiej będzie Ci ją rozwijać i adaptować do potrzeb rynku.
Z założenia wymusza stosowanie przestrzeni nazw (z ang. namespace) i interfejsów, pomagając w ten sposób organizować i zarządzać kodem źródłowym i plikami.
Composer
Composer to narzędzie, które dba o wszystkie zależności i biblioteki zewnętrzne.
Pozwala użytkownikowi stworzyć nowy projekt jednym poleceniem w terminalu, dbając o wszystkie potrzebne zasoby oraz ich odpowiednie wersje. Biblioteki innych firm można łatwo zainstalować za pomocą Composera.
Wszystkie zależności są odnotowywane w pliku composer.json, który znajduje się w folderze głównym aplikacji.
PHP Artisan (czyli Rzemieślnik)
Interfejs linii poleceń używany w Laravelu nazywa się Artisan.
Zawiera zestaw poleceń, które są bardzo pomocne w tworzeniu aplikacji internetowej. Te polecenia są wbudowane we frameworku Symphony, co Laravel sprytnie wykorzystał i użył u siebie, dodając nowe funkcje.
Dzięki poleceniu php artisan możesz przykładowo:
- wystartować serwer developerski,
- dodać nowy model/widok/kontroler,
- dodać lub uruchomić migrację bazy danych,
- stworzyć moduł do logowania użytkowników,
- i wiele więcej
Pozostałe zalety
Poza najważniejszymi mocnymi stronami, chciałbym żebyś poznał jeszcze kilka kwestii, które czynią z Laravela numer jeden wśród frameworków PHP.
Modułowość
Laravel udostępnia 20 wbudowanych bibliotek i modułów, które pomagają w ulepszaniu aplikacji. Każdy moduł jest zintegrowany z menedżerem zależności Composer, który ułatwia aktualizacje i zarządzanie wersją każdego z osobna.
Testowalność
Laravel zawiera funkcje i helpery, które pomagają w pisaniu i uruchamianiu Unit Testów. Ta opcja pozwala utrzymać kod w najlepszym porządku i upewnia programistę, że aplikacja działa poprawnie.
Wytyczanie
Laravel zapewnia użytkownikowi elastyczne podejście do definiowania routingu w aplikacji internetowej. Routing pomaga w lepszym skalowaniu aplikacji i zwiększa jej wydajność.
Dzięki tabeli routingu możesz jasno określić, co ma się wydarzyć po wejściu na dany URL, a gdy ścieżka nie zostanie odnaleziona, zostanie zwrócony bardzo ładny błąd 404.
Środowisko i plik .env
Aplikacja webowa zaprojektowana w Laravelu będzie działać poprawnie w różnych środowiskach. Framework sprawia, przenoszenie aplikacji na inny serwer czy podpinanie innej bazy danych, jest dziecinnie łatwe.
Za wszystko odpowiada plik .env, który zawiera w sobie szereg najważniejszych parametrów powiązanych ze środowiskiem uruchomieniowym. Poczynając od domeny publicznej i dostępu do bazy, przez typ środowiska (produkcyjne czy lokalne), wyświetlanie informacji o błędach po konfigurację wysyłki e-maili czy mechanizmu cache.
Wszystko spójnie konfigurowalne w jednym miejscu.
Zapytania do bazy i Eloquent ORM
Jeśli tworząc aplikacje w czystym PHP, musiałeś głowić się nad składnią SQL i zabezpieczaniem zapytań przed ingerencją z zewnątrz, możesz odetchnąć z ulgą.
Laravel zawiera narzędzie do tworzenia zapytań, które robi całą ciężką robotę za nas.
Naszym zadaniem jest poproszenie o listę konkretnych modeli wg zadanego warunku, a połączeniem z bazą, wykonaniem zapytania i zmapowaniem rezultatu na obiekty w PHP zajmie się Eloquent.
Jeśli chodzi o bazy danych, to z poziomu kodu PHP możemy również stworzyć całą strukturę tabel i łatwo wdrażać ją do czystych baz danych, przy pomocy mechanizmów migracji. Możesz zapomnieć o logowaniu się do phpMyAdmin i ręcznym tworzeniu wszystkich elementów.
Silnik szablonów Laravel Blade
Laravel używa silnika Blade Template.
Jest to lekki język szablonów, który wspiera wstawki z kodem PHP. Dzięki niemu nasze widoki HTMLowe są bardzo czyste i mogą być w pełni reużywalne przy pomocy sekcji, partiali i widoków osadzonych.
Z podstawowych funkcjonalności programistycznych mamy przykładowo warunek if z alternatywą else, pętle for i foreach (przydatną przy iterowaniu po tablicach) czy najzwyklejsze wyświetlenie wartości zmiennej w sposób bezpieczny (z escapowaniem znaczników HTML) lub niebezpieczny.
Logowanie i rejestracja użytkowników
Uwierzytelnianie użytkownika jest bardzo popularną funkcją wśród aplikacji internetowych. Laravel czyni wdrażanie autentykacji i autoryzacji wręcz śmiesznie prostym zadaniem.
Dzieje się tak, ponieważ stworzenie logowania, wylogowywania, rejestracji i przypominania hasła, odbywa się tu za pomocą jednego polecenia php artisan.
Co więcej, mamy pewność, że hasła są trzymane w sposób bezpieczny, przy wykorzystaniu algorytmu hashującego bcrypt. Dla zainteresowanych bezpieczeństwem haseł w bazie, odsyłam do wpisu: System logowania PHP.
Teraz, w Laravelu wersji 8, oprócz wspomnianych wyżej funkcji, dostajemy z automatu stronę profilu zalogowanego użytkownika, z możliwością zmiany hasła, danych podstawowych i nawet przyciskiem usunięcia konta!
Nieźle, prawda?
Redis
Laravel korzysta z narzędzia Redis do łączenia się z istniejącą sesją i pamięcią podręczną ogólnego przeznaczenia. Dzięki temu, z automatu dostajemy działający mechanizm cache, który mocno pozytywnie wpływa na szybkość działania naszej strony.
Oczywiście, zastosowanie cache’a nie w każdym przypadku jest zalecane. Także jest tu możliwość dołożenia odpowiednich reguł, które np. określą, które z URLi nie powinny być przechowywane i zwracane z pamięci podręcznej.
Gdzie mogę się go nauczyć?
Przekonałem Cię, że Laravel to naprawdę potężne narzędzie, które zdecydowanie warto poznać?
To dobrze.
Byłoby dziwne, gdyby tak się nie stało.
Jeśli chodzi o naukę Laravela, to jest wiele miejsc, gdzie znajdziesz materiały na ten temat. Strona, którą właśnie czytasz, jest jednym z takich miejsc.
Na start polecam Ci mini serię 5 bardzo obszernych lekcji w stylu Laravel Hello World:
- [1 z 5] Laravel PHP: Hello World w Laravelu. Pierwsze kroki, z instalacją środowiska i stworzeniem nowego projektu.
- [2 z 5] Laravel PHP: Widoki oraz routing, adresy URL. Nauka widoków, routingu oraz zarządzania adresami URL.
- [3 z 5] Laravel PHP: Piszemy pierwszy kontroler. Nauczysz się czym są kontrolery i jak współgrają z całym frameworkiem.
- [4 z 5] Laravel PHP: Model i migracja danych krok po kroku. Czas na model. Po modelu stworzysz nową migrację i nauczysz się tworzyć tabele SQL zgodne z modelami w Laravelu.
- [5 z 5] Laravel PHP: Model i dane testowe krok po kroku. Poznasz mechanizm seedowania i stworzysz odpowiednią ilość danych testowych jednym poleceniem.
Oraz, jeśli wolisz przyswajać wiedzę w formie audiowizualnej, zapraszam Cię na mój kanał na YouTubie, a konkretnie do playlisty „Kurs PHP Laravel”, gdzie cyklicznie ukazują się kolejne części kursu Laravela od podstaw.
Pierwszą część z playlisty możesz zobaczyć tutaj, nie wychodząc ze strony:
To film pokazujący, jakich narzędzi potrzebujesz do pracy z Laravelem oraz jak stworzyć i uruchomić nowy projekt.
Podsumowanie
Uff… nagadałem się na temat Laravela.
Poznałeś wszystkie jego najważniejsze zalety i ciekawe fakty.
Chciałbym teraz usłyszeć co nieco od Ciebie.
Daj znać, za co lubisz Laravela lub, jeśli jeszcze z niego nie korzystasz, czy po przeczytaniu zdecydujesz się go wypróbować.
Pozdrawiam i życzę wielu sukcesów!
Jakiś czas temu przy próbie zaczęcia nauki programowania w PHP próbowałem też Laravela i poległem na etapie uruchomienia go. Ciekawe czy dzięki tym filmikom pójdzie lepiej
Właśnie po to je nagrywam. Także trzymam kciuki i powodzenia!
Zabieram się za laravel już 2 razy, może z braku czasu. Jednak może teraz uda pociągnąć temat dalej. Tak więc piszę się dalej na informacje i może razem damy radę.
Serię planuję zakończyć opublikowaną, działającą aplikacją webową. Także przejście przez wszystkie filmy z pewnością pomoże w nauce. Pozdrawiam.
Tworzę strony i aplikacje w „czystym” php. Przez jakiś czas myślałem, że tak będzie lepiej gdyż ma się pełną kontrolę nad tym co się tworzy. Powoli zmieniam zdanie i chcę nauczyć się jakiegoś frameworka. Po pierwsze zauważyłem że mimo iż mam napisane różne klasy które wykorzystuję to i tak za każdym razem robię w kółko podobne czynności i tracę mnóstwo na to czasu. Poza tym przy różnych zmianach generuje się dużo błędów, nie o wszystkich zależnościach się pamięta i z czasem robi się delikatnie mówiąc chaos. Myślę, że framework te i inne problemy rozwiąże i praca będzie efektywniejsza a kod czytelniejszy i bezpieczniejszy. Kiedyś już podchodziłem do Laravela ale się zniechęciłem, nie wszystko było dla mnie jasne ale chętnie spróbuję jeszcze raz. Może z Twoją pomocą będzie łatwiej. Pozdrawiam
Hej Konrad,
Wybranie frameworka i opanowanie go to bardzo dobry krok. Na pewno przełoży się na lepszą jakość tego, co tworzysz. Do tego, będziesz widział efekty znacznie szybciej i łatwiej wprowadzisz późniejsze modyfikacje.
Pozdrawiam i powodzenia w nauce!
Cześć,
planujesz może poruszyć temat tworzenia RESTful API za pomocą Laravela?
Pozdrawiam
Hej Michał,
Tak, tworzenie własnego API pojawi się na pewno. Nie jestem jeszcze w stanie stwierdzić, kiedy konkretnie to się stanie.
Pozdrawiam,
Marcin
Cześć, od jakiegoś czasu cały czas próbuję znaleźć satysfakcjonującą metodę wrzucania i pobierania plików z serwera.
Czy zamierzasz ten temat poruszyć w najbliższym czasie? A jeżeli nie, to czy polecasz wyjaśnienie jakiegoś innego autora? Twoje wyjaśnienia uważam za bardzo klarowne i czytelne dlatego pytam.
Pozdrawiam,
Franek
Cześć Franku,
dziękuję za komentarz. Na pewno będę poruszał tę kwestię w ramach kursu Laravela – z wykorzystaniem mechanizmu właśnie tego frameworka. Czy masz jakiś konkretny stack technologiczny, pod który szukasz rozwiązania?
Pozdrawiam,
Marcin
Uczę się Laravela, za tym podejściem już idzie lepiej 🙂 Trochę odczuwam blokadę przed radosną twórczością, bo wszędzie w ogłoszeniach o pracę piszą „czysty kod”, „solid”, „code review”…ale to jeszcze dla mnie za wcześnie, żeby pisać każdą linijkę idealnie. Na jakiem etapie polecasz zająć się technikami programowania obiektowego, technikami itd. itp. bo trochę mnie to zniechęca a nie za bardzo jest się skąd w necie nauczyć tworzenia wysokiej jakości kodu zgodnego ze standardami komercyjnymi…
Hej Wiktor 🙂
gratuluję wyboru i samozaparcia. Nauka każdego nowego języka/narzędzia czy frameworka to spore wyzwanie. Zawsze na początku jest ciężko, żeby po czasie wszystko stało się jasne i oczywiste.
Pisząc w Laravelu, jak to nazywasz „techniki obiektowe”, są nieco wymuszane. Nie dasz rady pisać kodu w Laravelu proceduralnie, bez wykorzystania obiektów.
Co do czystego kodu – to często też przychodzi z czasem. Najłatwiej się tego nauczyć dołączając do zespołu, gdzie bardziej doświadczeni programiści zrobią Ci code review i wytkną oczywiste błędy. Samemu może być Ci ciężko to opanować. Czysty kod przychodzi z czasem.
Pozdrawiam serdecznie!
Witam, kurs całkiem fajnie zrobiony, ale brakuje mi tu podstaw. Jak zainstalować brakujące biblioteki? Kilka godzin się z tym męczyłem na świeżym Windowsie. To samo z mysql. Bez tego nie można pojść dalej więc chyba powinno być to bardziej omówione.
Tak, masz rację. Być może błędnie założyłem, że jak ktoś zabiera się za Laravela, to przeszedł już przez podstawy PHP. Zwrócę na to większą uwagę, gdy skończę nagrywać Laravela od A do Z. Pozdrawiam i wszystkiego dobrego!
Dzięki za odpowiedź. To takie moje uwagi. Trochę w czystym php’ie posiedziałem. Wrzuciłem wyższy bieg i trafiłem na twój kurs. Zrobiony całkiem ok, ale tak jak wyżej napisałem Brakuje kilku rzeczy. Zanim zacząłem uczyć się tego Laravela i VSC, miałem mordercze kilka godzin, żeby zainstalować biblioteki itp. Teraz to samo z bazami danych. Trochę czasu się na to traci. Bez Stackoverflowa się nie obyło. Ale póki co udało się zrobić, żeby było dobrze.