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
W tej lekcji pokażę ci w jaki sposób możesz logować błędy lub inne informacje
do pliku, ale także jak można je w inny sposób jeszcze podejrzeć. Na
początek pokażę ci, gdzie laravel zapisuje wszystkie błędy,
które mogą być wygenerowane na twojej stronie i gdzie będziesz tych logów mógł szukać. Będzie
to w storage, następnie w logs, czyli jest to katalog również nie zawarty
w naszym repozytorium, czyli jakby kodzie źródłowym. Jest to coś co na serwerze
się będzie znajdowało i powinno być że tak powiem przechowywane pomiędzy poszczególnymi
deployment'ami, czyli wdrożeniami twojej aplikacji i teraz jak możemy jakiś błąd wygenerować
w zasadzie to wystarczy, że przejdziemy na przykład do PostController i
powiedzmy, że tutaj usuniemy to paginate. To nam wygeneruje błąd
i zapewniam cię zobacz, taki błąd się
pojawił, na produkcji kiedy będziemy mieli troszkę inne ustawienia, jeżeli chodzi o
plik env, to po prostu wyskoczy komuś, że wystąpił
błąd, ale nie będzie takich szczegółów i teraz się pojawi
tutaj plik, jak widzisz z datą i mamy szczegóły tego błędu. Jest tutaj data dokładna
i cały jakby stack trace, czyli w ten sposób laravel
nam będzie tutaj wstawiał błędy i codziennie będzie to nowy plik. Okej,
więc cofnijmy to, żeby błędu nie było. Teraz co możesz jeszcze
zrobić, ty możesz swoje błędy sam wyświetlać. Powiedzmy, że możesz gdzieś mieć blok try,
powiedzmy coś w tym i catch. Natomiast
tutaj nie będzie to potrzebne, ale jeżeli miałbyś taki blok try i catch i chcesz w catch wyszukać
wyświetlić sobie jakiś błąd to możesz skorzystać z takiej fasady log,
ten sposób musisz ją na górze zaimportować wpisując use log lub
możesz ją poprzedzić takim slashem. Jeżeli to zrobisz w ten sposób to nie
będziesz musiał nigdzie u góry robić use i korzystając z log korzystamy
z takiej biblioteki monolog, tutaj jest wiele różnych metod. Jest
na przykład log info i możemy sobie tutaj napisać test
info i w momencie jak ta linijka kodu się wywoła to
w tym pliku również będzie mieć taką wiadomość, więc odśnieżmy, ta linijka kodu musiała
się wykonać i widzimy tutaj local info test info, jeżeli
skorzystalibyśmy z error i napiszemy test error, po
wykonaniu się tej linijki kodu oczywiście również to powinno w tym pliku znaleźć. Mamy
local error i tak to dokładnie wygląda. Tych metod
jest jeszcze więcej, zerknij sobie do dokumentacji jeżeli jakaś inna ci się przyda, ja najczęściej
korzystam error is info i to jest zupełności wystarczające do większości zastosowań. Okej, jeszcze
dwie, które chciałbym ci pokazać jedną już widziałeś bo było to die dump. Często
się z tego korzysta podczas developmentu. Możemy sobie wpisać
coś takiego. Więc kolejna linijka już się nie wykona. Tutaj się wykonywanie
kodu zatrzyma i możemy wtedy zdebuggować, co mamy pod taką zmienną,
natomiast mamy jeszcze drugą wersję tej funkcji. Jest
to samo dump, ona nie robi die tylko po prostu nam to wyświetli i przejdzie dalej. Zobacz,
to będzie tak wyglądać. Natomiast czasami to może przeszkadzać, bo jak widzisz jednak
jest to generowane do pliku html i wpływa na layout naszej strony. Z tego
powodu pokażę ci w jaki sposób możemy uruchomić sobie dump server, który nam
to wszystko będzie przechwytywał. Na sekundę może sobie to wykomentuje. Przejdziemy
do konsoli i mamy takie polecenie jak php artisan dump server.
Jeżeli taki serwer uruchomimy to on będzie nasłuchiwał i teraz
za każdym razem kiedy skorzystamy takiej funkcji dump, to on będzie to przechwytywał,
więc może ją odkomentuje. Już nam to nie będzie tutaj wyświetlać, więc jak widzisz
normalnie możemy pracować naszą aplikację, ale ten serwer jak
widzisz wszystko dokładnie przechwycił. Możemy również skorzystać z die
dump, po prostu tutaj aplikacja się zakończy,
a ten serwer tak czy siak również to wszystko przechwyci, więc jeżeli
będziesz chciał sobie tutaj jakieś rzeczy wyrzucać, żeby je dokładnie podejrzeć
to polecam ci robić to ten sposób, jak widzisz tutaj został wyświetlony cały
ten obiekt, więc nie jest to tak super czytelne, ale zawsze możemy
na kolekcji wykonać metodę to array, zamienić ją na tablicę i wtedy
jeżeli tutaj odświeżymy możemy zrobić zwykły dump, odświeżę
i przejdziemy tutaj na sam dół, zobaczysz, że mamy normalnie
całą tablicę z tymi wpisami. Dokładnie
tutaj widzimy szczegóły zapytania pod jakim adresem ono zostało wysłane i
to co ustawiliśmy sobie do funkcji dump. Myślę, że te kilka sposobów
jest wystarczających do tego żeby debuggować swoją aplikację
aczkolwiek w kolejnej lekcji pokażę ci jak możemy to zrobić jeszcze w lepszy czytelniejszy
sposób użyciem specjalnego dodatku.