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
Spróbujmy zatem wysłać maila do użytkownika, po tym jak uda się go
zarejestrować. Przejdę od razu do rejestracji i za
sekundę sobie to uzupełnimy, ale zanim to zrobimy, musimy oczywiście tutaj
poczynić odpowiednie kroki. Czyli mamy już stworzony mailable,
jest to tutaj i chcemy właśnie takiego maila
już gotowego bo mamy jakby cały do niego schemat wysłać. Teraz
jak to zrobić? Oczywiście musimy to zrobić w miejscu, w którym wiemy
że użytkownik został zarejestrowany, czyli musimy przejść do RegisterController i
tutaj mieliśmy taką
metodę jak registered. Wiemy, że ta metoda mówi
nam że użytkownik został zarejestrowany. Teraz na wysyłanie maili też mogło być
wiele różnych sposobów, moglibyśmy tutaj po zarejestrowaniu użytkownika jakiś
event emitować, ale to są troszkę bardziej zaawansowane tematy o których nie mówiliśmy
w tym kursie. Ja tylko o tym wspominałem i wtedy kiedy użytkownik jest
zarejestrowany można wysłać maila, ale nic nie stoi na przeszkodzie, żeby wpisać go również tutaj,
po prostu w sposób ręczny, nie ma tutaj zbyt wiele logiki, więc nie sądzę
że nie będzie to jakąś złą praktyką. W wielu przypadkach to się po prostu sprawdzi
i jak mi pokazać taki prosty przypadek, więc żeby maila wysłać potrzebujemy
skorzystać z takiej fasady w laravel która nazywa mail i ona
musi być zaimportowana, mi tutaj edytor od razu podpowiada, że będzie to Illuminate Support
Facades Mail. Jeżeli nacisnę enter to ona na górze zostanie zaimportowana,
zobacz jak to wygląda dokładnie tak i teraz musimy
tutaj zrobić to, czyli mail i do kogo. Musimy mieć
adres email na który chcemy wysłać właśnie tego maila, mamy tutaj użytkownika,
który właśnie się zarejestrował, więc mamy również jego adres email i możemy tutaj
przekazać albo obiekt użytkownika albo jego email, wszystko jedno, laravel
sobie tym poradzi, więc możemy przekazać email i teraz mówimy send,
wyślij. No właśnie i co chcemy wysłać? Chcemy tutaj wysłać nasze
mailable, więc może na samej górze zadeklarujemy, że chcemy korzystać z App Mail
i następnie UserRegistered. Jeżeli już do tego mamy
dostęp to tutaj wystarczy, że stworzymy nową instancję właśnie z tej
klasy, czyli UserRegistered i pamiętasz że przy jej
tworzeniu w lekcji poprzedniej musimy tam przekazać obiekt user i tak
to będzie wyglądać, natomiast jeszcze nie chcę tego maila wysyłać. Chciałbym przejść właśnie tutaj do UserRegistered,
okej, bo chcę ci pokazać że w metodzie build
i to jest fajnie opisane na stronie dokumentacji, można wiele rzeczy ustawić, czyli na przykład od
kogo ten mail ma przyjść czyli zanim zrobimy view możemy tutaj powiedzieć from
i podać adres email, jakby
który będzie podany w tym nagłówku from, a więc od kogo ten mail przyszedł, czyli
możesz mieć różne klasy tutaj mailables i niektóre z nich mogą korzystać
z innego adresu from. Natomiast jeżeli korzystasz z jednego adresu from i
zazwyczaj tak będzie to ważne żebyś go wcześniej skonfigurował i my
już to robiliśmy przy konfiguracji mailtrap, więc jeżeli zaglądamy do pliku env
to zauważ, że mamy tutaj skonfigurowane coś takiego jak mailfrom
address, czyli to będzie hello larablogger test email from
name to jest larablogger, to będzie brane globalnie, czyli nie musimy
tutaj już nic dodatkowo konfigurować, zatem zobaczmy czy taki mail uda
nam się wysłać, kiedy zarejestrujemy użytkownika. Ja już sobie tutaj
otworzyłem skrzynkę na mailtrap po to żeby tutaj te maile wpadały i spróbujemy
zarejestrować sobie jakiegoś fejkowego użytkownika. Adres
nie musi być poprawny bo pamiętaj że tak naprawdę nie pójdzie mail na ten adres, ale zostanie
przechwycony. No i
oczywiście hasło 8 znaków jak pamiętasz być może, czekamy chwilę
oczywiście, bo ten mail się wysyła więc takie zapytanie chwilkę trwa. To
jest problem, który można rozwiązać za pomocą tak zwanych kolejek, że od razu zwracamy,
ale na kolejkę jest dodawany ten email i jest dopiero za chwilę wysyłany w
tle, ale to również temat troszkę bardziej zaawansowany, w każdym razie udało się i
mail się prawdopodobnie wysłał i zauważ, że mamy dwa maile. Po pierwsze verify
email address, ale to jest wyłącznie dlatego że wcześniej skorzystaliśmy
być może również pamiętasz z tego żeby potwierdzać
adres email, ale to na razie nie jest dla nas istotne, dla nas było Istotne czy nasz mail się wysłał.
Jak widzisz, dokładnie tak. Jest on również odpowiednio tutaj sformatowany,
czyli są poprawne dane podane w tym mailu. Jak
zatem widzisz wysyłanie maili z użyciem laravela jest bardzo proste. Jeżeli
chodzi o wysłanie ich za pomocą różnych sterowników to jeszcze może tym wspomnę,
jeżeli przejdziemy do app config. Czy w zasadzie do config i do
mail, tutaj mamy coś takiego jak driver. Domyślny
jest to smtp, ja tutaj skorzystałem już wcześniej z mailtrap. Natomiast
te dane możemy podmienić na dowolny serwer smtp i będzie zwykły mail
wysyłany, natomiast ważne jest, żeby wiedzieć, że laravel wspiera jak widzisz tutaj różne
driver'y, a także można zainstalować sobie dodatkowe za
pomocą composer'a i dzięki temu możesz mieć jeden kod raz napisany,
tak to zrobiliśmy teraz, a podmienić tylko sterownik do wysyłania maili i na przykład
możesz skorzystać z popularnego mailgun'a czy mandrill'a ale także na przykład
ses, czyli simple email service od Amazona, więc
jeżeli będziesz potrzebował wysyłać naprawdę dużo maili i będziesz chciał
żeby te maile na pewno dochodziły do swoich odbiorców, to warto skorzystać z takich,
można powiedzieć usług firm trzecich, które zajmują się masowym wysyłanie
emaili. Natomiast jeżeli będziesz miał jakąś prostą aplikację gdzie tych maili będziesz
wysyłał kilka, czy kilkadziesiąt na dobę możesz spokojnie sobie do niej podłączyć
już istniejący adres email poprzez konfigurację smtp, również
nie powinno być problemu.