Techniki Pracy
8 godz. 33 min · Laravel · Full-stack i Programowanie
Piotr PalarzWeb DeveloperKurs ten rozpoczniemy od omówienia czym jest framework Laravel i co może Ci zaoferować. Następnie zobaczysz jak skonfigurować środowisko do pracy lokalnej w formie wirtualnej maszyny z preinstalowanymi narzędziami, tj. PHP, MySQL czy serwerem nginx. Zobaczysz w jaki sposób tworzyć nowe projekty wykorzystujące Laravel, zrozumiesz strukturę katalogów projektu i skonfigurujesz polaczenie z baza danych.
W kursie nie znajdziesz czysto teoretycznych lekcji. Każda z części przybliżać nas bowiem będzie do finalnej wersji projektu, którym będzie aplikacja internetowego bloga. Funkcjonalności, które od podstaw zaimplementujemy, to m.in. dodawanie i wyświetlanie wpisów, tworzenie i przypisywanie tagów, komentowanie, rejestracja i logowanie użytkowników czy wyszukiwarka. Każda z nich odkryje przez Toba możliwości frameworka Laravel i jego sposoby na rozwiazywanie konkretnych problemów.
Laravel to framework oparty o wzorzec MVC. Na konkretnych przykładach zobaczysz co to oznacza. Tworzyć będziemy wspólnie kontrolery, do których przypiszemy stosowne adresy URL, modele, które reprezentować będą dane, a także widoki, które te dane sformatują, wplatając je w kod HTML.
Choć aby w pełni zrozumieć omawiane zagadnienia, należy znać podstawowe koncepcje relacyjnych baz danych, to pisanie zapytań SQL nie jest czymś, to będziemy musieli robić. Wszystko to za sprawa migracji oraz Eloquenta. Te pierwsze pozwolą nam zaprojektować strukturę tabel bazy danych i jedna komenda je utworzyć, a Eloquent posłuży nam do tworzenia, zapisywania i odczytywania modeli reprezentujących te dane. Wszystko to uzyskamy pisząc wyłącznie prosty kod PHP.W kursie nie zabraknie również informacji na temat tworzenia relacji. Zobaczysz m. in. jak skojarzyć autora w wpisem, jak dodawać tagi czy komentarze.
Te dwa pojęcia, choć podobne, różnią się od siebie. Pierwsze pozwala określić, czy logujący się użytkownik jest tym, za kogo się podaje. Drugie mówi nam, czy dana osoba może wykonać zadana akcje. Oba te koncepty zobaczysz w akcji na praktycznym przykładzie. Do naszego bloga dodamy pełen system autentykacji, tj. rejestracje, logowanie, resetowanie hasła i potwierdzanie adresu email. Zalogowani użytkownicy otrzymają dzięki temu bonus w postaci niewidocznych dla pozostałych osób wpisów premium. Aby zarządzać wpisami na blogu, stworzymy mini sekcje administracyjna, do której dostęp będzie miał wyłącznie użytkownik oznaczony jako administrator. Dowiesz się wówczas nie tylko jak pokazywać pewne widoki wyłącznie zautoryzowanym osobom, ale także jak zabezpieczyć kontrolery przed nieuprawnionym dostępem.
Oprócz wymienionych wyżej tematów, w kursie poruszymy również uploadowanie plików na serwer, sposoby tworzenia i wysyłania maili, prace z Front-endem, debugowanie aplikacji, korzystanie z rozszerzeń tworzonych przez aktywna społeczność Laravel czy techniki wdrażania aplikacji do produkcji. Ostatni temat będzie o tyle ciekawy, ze jest on często pomijany w materiałach tego typu. Z tym kursem Twoja aplikacja nie pozostanie wyłącznie na dysku Twojego komputera. Dowiesz się bowiem jak skonfigurować serwer VPS tak, aby wykorzystać tzw. zero-downtime deployment. Dwie komendy wystarcza wówczas do tego, aby w kilkanaście sekund nowa wersja Twojej aplikacji ukazała się światu. A wszystko to bez przerywania jej działania nawet na ułamek sekundy i bez wykorzystania płatnych rozwiązań!
Kurs ten jest dla wszystkich tych, którzy znają już podstawy języka PHP i koncepcje relacyjnych baz danych SQL oraz chcieliby przyjemnie i wydajnie tworzyć ambitne aplikacje internetowe. Znajomość samego frameworka Laravel lub podobnych rozwiązań nie jest jednak wymagana. Praca z frameworkiem omawiana jest stopniowo, od podstaw do bardziej zaawansowanych tematów. Jeśli zatem masz głowę pełną pomysłów, a chcesz uniknąć frustracji związanej z pisaniem wszystkiego od podstaw - koniecznie sięgnij po Laravel i zobacz jak to narzędzie pozwoli skupić Ci się na tym, co istotne!
5.8.x
Możemy już dodawać wpisy, wyświetlać te wpisy, edytować i teraz
zajmiemy usuwaniem, czyli będziemy mieli pełen crud tak zwany, czyli create
read update delete. Jak usuwać wpisy. Jest to również
bardzo proste, cały czas będziemy podążać tym samym sposobem co do tej pory, czyli po
prostu controller, akcja, przekierowanie, komunikat. Będę
chciał tutaj do edit post dodać sobie usuwanie. To
mieliśmy tutaj w HTML w new, ten wrapper,
który tutaj był wcześniej, on na dole ma coś takiego właśnie jak delete post i
co ważne musimy to zawrzeć nie w formularzu, ale pod formularzem,
bo nie może być formularz w formularzu. Wtedy nam się nie wyśle poprawnie, a chcemy
to wszystko wysłać za pomocą formularzy, bo nie mamy innego sposobu. Innym sposobem był by
Ajax, natomiast my tutaj z Ajax'a nie korzystamy. Teraz będziemy
chcieli się odwołać w web do metody, która się nazywa destroy. To
jest metoda, która według tej metodologii
nazewnictwa będzie odpowiedzialna za usuwanie za sobązasobu, dlatego do destroy
żeby się odwołać musimy taką ścieżkę zarejestrować i będzie
to zapytanie o typie, typie delete. Znowu
sobie je sfejkujemy podając odpowiedni zapis, odpowiednie pole w
formularzu, ale będzie to przygotowane żeby na przykład przyszłości wysyłać zapytania Ajax'em
i żeby to działało poprawnie, więc znowu ścieżka jest taka sama, tylko inny
typ zapytania i tutaj odwołamy się do destroy, name
to będzie admin post delete, okej.
Teraz będziemy mogli w zasadzie
do tego formularza się odwołać, jeżeli byśmy, bo to jest też ważne,
jeżeli tutaj nie przypiszemy tego admin post delete, ale podamy name jako admin post edit
w formularzu zadziała to tak samo, dlatego że to zwracana nam wyłącznie ścieżkę, a
tym zapytaniem definiujemy tak czy siak gdzie indziej, ale możemy sobie to również tak przypisać, więc
będzie to formularz, któremu trzeba jako metodę przypisać post, natomiast
jako action właśnie admin.post.delete
albo admin.post.edit. To jest ten sam URL, csrf
oczywiście musi się tutaj znaleźć i teraz
jeszcze tutaj musimy przekazać id, oczywiście do tego drugiego jest
to potrzebne i nic więcej tutaj potrzebne nie jest, oprócz tego pola które też
wyżej definiowałliśmy, czyli method field. Chcemy, żeby to było delete. Jeżeli
tego nie zrobimy, jest to wysłane postem, to wtedy laravel będzie chciał
się odwołać post'a, a nie mamy zapytania post z takim właśnie adresem.
Gdyby było to ono by się wykonało, dzięki temu polu wykona się delete, zatem przejdziemy
do PostController i tutaj po id trzeba taki post znaleźć. Doskonale
już wiesz jak to zrobić, więc to jest findOrFail id. Jeżeli
się go uda znaleźć to po prostu go usuwamy za pomoc delete. Tak możemy na
modelach eloquent usuwać dane, to zostanie z bazy danych usunięte
i teraz wystarczy, że przekierujemy. Jeżeli wpis usuniemy to nie możemy już przekierować
do strony edycji, tylko przekierujemy na stronę główną. Zatem return redirect
może to być home i możemy wcześniej zrobić
session_flash tak jak robiliśmy lub możemy zrobić tak jak jeszcze widzisz na ekranie
wyżej, czyli with message Post
has been deleted, czyli został usunięty tutaj
również żeby to wyglądało podobnie. Zróbmy to tak, okej,
odświeżam pojawiło się Delete post i może jeszcze ddamy
sobie jedną tylko taką warstwę walidacji. Można powiedzieć frontendowej. Tutaj
zrobimy complete i zwrócimy coś
takiego jak confirm. Czy jesteś
pewien? To wyświetli
jej JavaScript'owe okienko w którym jeżeli klikniemy okej, tutaj zostanie zwrócone true, jest
w porządku jeżeli klikniemy cancel to zostanie zwrócone undefined i tak naprawdę nie
zapobiegnie to domyślnej akcji przeglądarki, a w
zasadzie wtedy zapobiegnie, jeżeli będzie true to nie zapobiegnie. Czyli jeżeli teraz kliknę
Delete post i zrobię cancel nic kompletnie się stało, ale jeżeli
kliknę OK post powinien zostać usunięty, widzimy Post has been deleted i
jego nie ma już bazie danych.