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
Sprawmy zatem, aby można było przejść do poszczególnych wpisów. Mamy
tutaj dodane slugi. Pokażę ci teraz jak po przejściu do kontrolera możemy po
tym slug'u wyszukać odpowiedniego wpisu. Pokażę ci na to dwa sposoby, bo
obydwa cię czegoś nauczą, dlatego przejdźmy od razu do controllers, do
post controller i wiemy że to będzie tutaj. Wyłączymy tutaj sobie
to castowanie, czyli będziemy chcieli przekazać po prostu slug.
Pokażę ci jak łatwo możemy za pomocą querybuilder'a. Tutaj
sobie znaleźć czy za pomocą Eloquenta w zasadzie znaleźć odpowiedni wpis. Możemy
powiedzieć post i tutaj będzie posts where i teraz
tak możemy tutaj powiedzieć slug. Równa się slug. Następnie first,
można też powiedzieć first or fail, to będzie tak jak wcześniej. Możemy
tutaj podawać tablice, w ten
sposób, taka tablica będzie oznaczała że można w tej podać wiele parametrów,
ale w naszym przypadku, pamiętaj, akurat tylko slug jest potrzebny. Chce ci
po prostu pokazać kilka możliwości lub możemy powiedzieć na przykład where slug
równa się slug. W ten sposób, czyli od razu where i to
jest ta część jest dynamiczna. Zadziała to również poprawnie, sprawdzimy jak
to będzie wyglądać, widzimy, że mamy jakiś błąd. Okej,
dlatego właśnie, że przekazaliśmy tutaj post, a nie, czyli
w zasadzie samo query, obiekt query, a nie wpis. Zobaczmy teraz i
działa to poprawnie, jeżeli byśmy zrobili first or fail,
to będzie działać jeszcze lepiej z tego powodu, że jeżeli będzie istniał jakiś adres to zwróci
nam 404, więc jest w porządku i to jest jeden sposób w jaki możesz to robić. Po
prostu wyszukiwać po polu, które cię interesuje. Natomiast pokażę
ci teraz jak można to zrobić jeszcze inaczej. Wcześniej mieliśmy takie castowanie, że
tutaj mieliśmy posts. Prawda i nie musieliśmy
nic innego robić, czyli Model Route Binding to się nazywało. Natomiast,
żeby to mogło działać tutaj też trzeba zmienić na post. Zobacz,
mamy 404, to musimy coś zmienić dlaczego,
właśnie dlatego że tutaj laravel bierze pod uwagę id, czyli
coś takiego jak tutaj post. Tutaj również jest to post, to on próbuje znaleźć właśnie
post'a, którego id, to będzie to co jest przekazane tym miejscu, dlatego musimy
to dostosować i powiedzieć, że chodzi o slug. Wcześniej przy id nie mieliśmy tego problemu.
Teraz musimy to zmienić i wystarczy na modelu, czyli tutaj w klasie
post, dodać funkcję publiczną czyli będzie to public function
get route key name i ta funkcja
powinna zwrócić właśnie to pole w którym chcemy wyszukiwać.
W naszym przypadku slug, czyli zrobimy coś takiego. Nagle
wszystko działa poprawnie, czyli teraz z kolei gdybym tutaj id przekazał to już by nie działało. W ten
sposób stworzyliśmy sobie jak widzisz już całkiem fajnie działającego bloga, chociaż
jeszcze nie możemy dodawać własnych wpisów, ale to zrobimy później i nawet te URL'e
wyglądają już naprawdę dobrze. Co jest jeszcze fajne korzystamy
z Helperów do routingów w naszych widokach, więc jeżeli będziesz chciał to zmienić na przykład
na articles w dowolnym momencie możesz to zrobić i wszystko w magiczny
sposób jak widzisz będzie działać poprawnie. Wrócę do post i na
tym zakończymy naszą lekcję.