Laravel
Tworzenie aplikacji webowych w Laravel: routing, modele Eloquent, uwierzytelnianie, kolejki i wdrożenie, wyjaśnione na praktycznych przykładach do wykorzystania w prawdziwych projektach.
Na razie nie ma tu artykułów!
Jeszcze o tym nie pisaliśmy. Zajrzyj do innego tematu albo wróć wkrótce!
Questions about this topic
Quick, clear answers to what readers ask most about this topic.
Co to jest Laravel?
Laravel to darmowy framework PHP o otwartym kodzie do tworzenia aplikacji webowych. Daje programistom gotowe elementy do routingu, baz danych, logowania, poczty, kolejek i testów, dzięki czemu piszą mniej powtarzalnego kodu. Framework stosuje wzorzec model, widok, kontroler i ma dużą społeczność.
Do czego służy Laravel?
Laravel służy do budowy aplikacji webowych, takich jak systemy do zarządzania, portale klienta, sklepy internetowe, platformy rezerwacji i API dla aplikacji mobilnych. Pasuje do każdego projektu, który potrzebuje użytkowników, bazy danych i reguł biznesowych. Wiele firm prowadzi na nim duże wewnętrzne systemy, bo framework jest stabilny i łatwo go rozbudować.
Czy Laravel jest dobry dla początkujących?
Laravel jest dobry dla początkujących, którzy znają już podstawy PHP, bo jego kod jest czytelny, a oficjalna dokumentacja jasna. Ma też dużą społeczność, wiele poradników i zestawy startowe, które same przygotują strony logowania. Wcześniejsza nauka czystego PHP znacznie ułatwia zrozumienie frameworka.
Jak zainstalować Laravel na komputerze?
Laravel instalujesz, najpierw instalując PHP i Composer, a potem uruchamiając composer create-project laravel/laravel z nazwą projektu. Instalator Laravel, wywoływany poleceniem laravel new, robi to samo i proponuje zestawy startowe. Następnie php artisan serve uruchamia lokalny serwer, dzięki czemu otworzysz aplikację w przeglądarce.
Jakiej wersji PHP wymaga Laravel?
Laravel wymaga aktualnej wersji PHP 8, a każde wydanie Laravel podaje najniższą obsługiwaną wersję PHP. Nowsze wydania Laravel rezygnują ze starszych wersji PHP, gdy tym kończy się wsparcie bezpieczeństwa. Zawsze sprawdź przewodnik aktualizacji wersji Laravel, której zamierzasz używać.
Co to jest routing w Laravel?
Routing w Laravel łączy adres internetowy i metodę HTTP, taką jak GET lub POST, z kodem, który na nie odpowiada. Trasy zapisuje się w plikach takich jak routes/web.php dla stron i routes/api.php dla API. Trasa może wywołać domknięcie lub metodę kontrolera i mieć middleware do sprawdzania logowania i innych warunków.
Co to jest Eloquent w Laravel?
Eloquent to ORM Laravel, czyli część, która pozwala pracować z tabelami bazy danych jako klasami PHP zwanymi modelami. Każdy model odpowiada tabeli, a każdy obiekt wierszowi, więc odczytujesz i zapisujesz dane bez pisania SQL. Eloquent obsługuje też relacje, takie jak jeden do wielu i wiele do wielu.
Jak działają relacje Eloquent w Laravel?
Relacje Eloquent w Laravel to metody modelu, takie jak hasMany, belongsTo i belongsToMany, które opisują, jak połączone są dwie tabele. Po ich zdefiniowaniu odczytasz powiązane dane, na przykład $order->customer, bez pisania złączenia. Eager loading metodą with wczytuje powiązane wiersze za jednym razem i zapobiega wolnym, powtarzanym zapytaniom.
Co to jest problem zapytań N+1 w Laravel?
Problem N+1 w Laravel pojawia się, gdy kod wczytuje listę rekordów, a potem dla każdego z nich wykonuje dodatkowe zapytanie o powiązane dane. Strona ze 100 zamówieniami może w ten sposób wykonać 101 zapytań i działać wolno. Eager loading metodą with rozwiązuje problem, pobierając powiązane wiersze w jednym zapytaniu.
Co to są migracje w Laravel?
Migracje w Laravel to pliki PHP, które w kodzie tworzą i zmieniają tabele bazy danych. Polecenie php artisan migrate je stosuje, więc każdy programista i każdy serwer ma taką samą strukturę bazy. Ponieważ migracje są w systemie kontroli wersji, zachowana jest historia każdej zmiany tabel.
Co to jest Blade w Laravel?
Blade to silnik szablonów Laravel do pisania stron HTML z prostymi znacznikami dla pętli, warunków i układów. Blade domyślnie zabezpiecza wypisywane wartości, co chroni strony przed atakami cross-site scripting. Szablony są kompilowane do zwykłego PHP i buforowane, więc Blade prawie nie obciąża żądań.
Jak działa uwierzytelnianie w Laravel?
Uwierzytelnianie w Laravel działa dzięki strażnikom (guards), którzy sprawdzają, kim jest użytkownik, i dostawcom (providers), którzy wczytują użytkowników z bazy danych. Zestawy startowe, takie jak Laravel Breeze, dodają gotowe strony logowania, rejestracji i resetu hasła. Hasła są haszowane algorytmem bcrypt lub Argon2, więc nigdy nie są zapisywane jawnym tekstem.
Czym różni się Laravel Sanctum od Laravel Passport?
Laravel Sanctum zapewnia proste logowanie tokenem i ciasteczkiem dla aplikacji jednostronicowych, aplikacji mobilnych i prostych API, a Laravel Passport to pełny serwer OAuth2. Większość projektów potrzebuje tylko Sanctum, bo jest lżejszy i łatwiejszy w konfiguracji. Passport sprawdza się, gdy zewnętrzne aplikacje muszą logować się w imieniu twoich użytkowników.
Co to jest middleware w Laravel?
Middleware w Laravel to warstwy, które sprawdzają lub zmieniają żądanie, zanim dotrze do twojego kodu, albo odpowiedź, zanim zostanie wysłana. Typowe middleware obsługują sprawdzanie logowania, ochronę CSRF, ograniczanie liczby żądań i ustawienia języka. Middleware możesz podpiąć do pojedynczych tras, grup tras lub całej aplikacji.
Jak działają kolejki w Laravel?
Kolejki w Laravel przenoszą powolne zadania, takie jak wysyłka e-maili czy tworzenie raportów, z żądania webowego do zadań w tle. Zadanie trafia do sterownika kolejki, na przykład Redis lub bazy danych, a uruchamia je proces roboczy wystartowany poleceniem php artisan queue:work. Użytkownik dostaje szybką odpowiedź, a ciężka praca kończy się w tle.
Kiedy używać kolejek w aplikacji Laravel?
Kolejek w aplikacji Laravel używaj zawsze, gdy zadanie trwa dłużej niż chwilę lub komunikuje się z zewnętrzną usługą, na przykład przy poczcie, przetwarzaniu plików czy webhookach płatności. Kolejki utrzymują szybkość stron i pozwalają nieudanym zadaniom samodzielnie się ponawiać. Laravel Horizon daje panel do obserwowania kolejek Redis.
Jak planować zadania w Laravel?
Zadania w Laravel planujesz, definiując je w harmonogramie metodami takimi jak daily czy everyFiveMinutes, a następnie uruchamiając php artisan schedule:run co minutę z jednego wpisu cron na serwerze. Harmonogram sam decyduje, które zadania mają się wykonać. Dzięki temu wszystkie zadania czasowe są w kodzie, a nie w wielu osobnych liniach cron.
Jak walidować dane z formularza w Laravel?
Dane z formularza walidujesz w Laravel metodą validate na obiekcie żądania lub klasą Form Request, która przechowuje reguły. Reguły takie jak required, email, max i unique sprawdzają każde pole, zanim twój kod go użyje. Gdy walidacja się nie powiedzie, Laravel odsyła użytkownika z komunikatami błędów i wcześniej wpisanymi danymi.
Jak Laravel chroni przed typowymi atakami na strony?
Laravel chroni przed typowymi atakami dzięki tokenom CSRF w formularzach, zabezpieczonemu wyświetlaniu danych w Blade, wiązaniu parametrów w zapytaniach do bazy i haszowanym hasłom. Te domyślne ustawienia blokują w normalnym użyciu ataki CSRF, cross-site scripting i SQL injection. Programiści nadal muszą walidować dane, sprawdzać uprawnienia i aktualizować framework.
Jak wdrożyć aplikację Laravel na serwer?
Aplikację Laravel wdrażasz, pobierając kod na serwer, uruchamiając composer install bez pakietów deweloperskich, ustawiając plik .env i wykonując migracje. Następnie buforujesz konfigurację, trasy i widoki oraz kierujesz serwer WWW na folder public. Wiele zespołów automatyzuje te kroki z poziomu Git, aby każde wydanie przebiegało tak samo.
Jakiego serwera potrzebuje aplikacja Laravel?
Aplikacja Laravel potrzebuje serwera z PHP, serwerem WWW, takim jak Nginx lub Apache, bazą danych, taką jak MySQL lub PostgreSQL, oraz Composer. Często dodaje się Redis do pamięci podręcznej i kolejek, a menedżer procesów utrzymuje działające procesy kolejek. Hostrena, marka hostingowa Linkysoft, oferuje hosting aplikacji webowych dla Laravel wdrażanych bezpośrednio z Git.
Jak przyspieszyć aplikację Laravel?
Aplikację Laravel przyspieszysz, buforując konfigurację, trasy i widoki, stosując eager loading relacji i dodając indeksy do przeszukiwanych kolumn bazy danych. Dalej pomaga przeniesienie powolnych zadań do kolejek i buforowanie wyników ciężkich zapytań w Redis. Włączenie PHP OPcache na serwerze daje duży zysk przy niewielkim wysiłku.
Jak testować aplikację Laravel?
Aplikację Laravel testujesz za pomocą PHPUnit lub Pest, które są skonfigurowane w każdym nowym projekcie. Testy funkcjonalne wysyłają symulowane żądania do tras i sprawdzają odpowiedź oraz bazę danych, a testy jednostkowe sprawdzają pojedyncze klasy. Polecenie php artisan test uruchamia cały zestaw testów.
Czy Laravel poradzi sobie z dużymi aplikacjami i wieloma użytkownikami?
Tak, Laravel obsłuży duże aplikacje z wieloma użytkownikami, gdy działa na dobrych serwerach z pamięcią podręczną, kolejkami, indeksami w bazie i więcej niż jednym serwerem aplikacji za load balancerem. Sam framework rzadko jest ograniczeniem, zwykle są nim wolne zapytania i brak pamięci podręcznej. Właśnie dlatego Linkysoft tworzy aplikacje webowe na zamówienie w PHP, Laravel, MySQL i Redis.
Jak często aktualizować wersję Laravel?
Wersję Laravel należy zaktualizować co najmniej przed tym, jak obecna przestanie otrzymywać poprawki bezpieczeństwa. Laravel wydaje nową główną wersję mniej więcej raz w roku, a każdej towarzyszy przewodnik aktualizacji. Małe, regularne aktualizacje są znacznie łatwiejsze niż przeskakiwanie o kilka wersji naraz.