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
Utwórzmy sobie zatem pierwszy projekt z użyciem laravel. Krótka informacja dla
ciebie jeżeli pracujesz na Macu i wybrałeś laravel valet, który pokazywałem wcześniej,
to możesz sobie zainstalować z użyciem composer'a globalnie taką
paczkę laravel i będziesz mógł korzystać z tego polecenia co za moment zrobimy lub
jeżeli nie chcesz tego robić możesz tworzyć nowe projekty z użyciem composer create-project,
tak jak jest tutaj pokazane. My będziemy pracować wewnątrz
wirtualnej maszyny z laravel homestead, dlatego mamy tam już preinstalowane polecenie
laravel i nie musimy nic dodatkowego instalować. Ja edytorze
VS Code otworzyłem sobie katalog larablogger i pokażę ci jego ścieżkę. To
jest to co utworzyliśmy wcześniej czyli katalog Sites w katalogu domowym i larablogger. Ten
katalog będzie mapowany do wewnątrz naszej wirtualnej maszyny, którą
chciałbym teraz uruchomić i pokażę to wyłącznie raz. Chciałem żebyś o tym pamiętał,
że w każdej lekcji kiedy będę wykonywał polecenia wewnątrz maszyny, to
znaczy że już ją wcześniej uruchomiłem, więc utworzę sobie nowe okno terminala i musimy
przejść tutaj do katalogu domowego i do homestead. Dopiero
tutaj możemy wpisać vagrant up, co powinno w tle uruchomić
naszą wirtualną maszynę. Kiedy to się stanie zalogujemy się do niej po ssh. Maszyna
została uruchomiona, tutaj również możesz zauważyć że wewnętrzny katalog code został
zmapowany do naszego zewnętrznego katalogu larablogger i teraz możemy
się zalogować wpisując vagrant ssh i będziemy już wewnątrz wirtualnej
maszyny. Okej, tutaj i wszystkie komendy, które będę wpisywał tak
naprawdę, pamiętaj, są wykonywane w Linux'ie w systemie Ubuntu, który został dla nas
uruchomiony. Mamy tutaj katalog code, do którego przejdę teraz i ten katalog
powinien odzwierciedlać wszystko to co mamy otwarte tutaj i teraz będziemy
chcieli właśnie w tym katalogu utworzyć nowy projekt. Mamy dostępne polecenie laravel o
którym przedtem mówiłem. Jest już tutaj preinstalowane i wpiszemy laravel
new. Jeżeli byśmy tutaj podali na przykład project, to wtedy w tym
katalogu gdzie jesteśmy aktualnie zostanie utworzony nowy katalog o nazwie project i
dopiero w nim cały projekt. Natomiast w naszym przypadku bardzo ważne jest to, aby wewnątrz
tego katalogu code bezpośrednio były wszystkie pliki naszego projektu, bo będzie
tam również folder public, który jest serwowany, kiedy otworzymy ten
serwer w przeglądarce, dlatego musimy wpisać laravel new bez podawania żadnego argumentu
i tutaj nasza aplikacja powinna zostać użyciem composer'a utworzona. Poczekamy
sobie chwilkę i będziemy mogli przejść dalej. Chwilę to trwało
ale aplikacja jest gotowa. Jak widzisz bardzo wiele modułów zostało zainstalowane bo
laravel właśnie wielu modułów się składa. Mając
już ten projekt możemy go podejrzeć I tutaj. Jeżeli ci się to odświeży to zawsze
możemy odświeżyć tą ikonkę Visual Studio Code i widzimy z czego
składa się nasz projekt. Na razie się tym nie martw, w kolejnej lekcji omówimy do
czego służą te pliki i katalogi i tak naprawdę jak nabierzesz troszeczkę
chociaż doświadczenia laravelem, wszystko będzie dla ciebie jak najbardziej jasne. Chciałbym
ci teraz pokazać jedną rzecz. Jeżeli przejdziemy sobie w przeglądarce pod adres larablogger,
który skonfigurowaliśmy wcześniej, naszym oczom
ukaże laravel, czyli jak widzisz, z tak
naprawdę webserver jest uruchomiony w tej wirtualnej maszynie. On obsługuje wszystko.
Mimo tego że my możemy tutaj zmieniać sobie pliki, ten webserwer ma
do nich dostęp u siebie w tym katalogu code i serwuje nam je pod
takim oto adresem, więc będziemy mogli zacząć to później zmieniać i tworzyć naszą
aplikację. Na koniec tej lekcji chciałbym jeszcze stworzyć troszkę lepszy plik
gitignore dlatego że będę to zapisywał repozytorium i chociaż
gitignore tutaj domyślnie wygląda w sposób, wyklucza w zasadzie te
rzeczy które powinny się znaleźć w repozytorium, to ja wolę sobie
tutaj dodać jeszcze trochę bardziej zaawansowany plik gitignore. Nie musisz
tego robić ale ja to robię w każdym ze swoich projektów. Do tego celu wykorzystam
dodatek .gitignore Generator. Jest to dodatek mojego autorstwa,
ale uwierz nie dlatego ci go pokazuje po prostu stworzyłem go bo bardzo
był mi potrzebny i widać to w każdym projekcie w którym
go po prostu wykorzystuje, więc w razie czego sobie go zainstaluj i wtedy Control Shift P
albo Command Shift P na Macu. Piszemy gitignore generate file. Okej,
tylko wcześniej sobie jeszcze skopiuje wszystko, co tutaj było. Okej,
wybiorę overwrites, żeby tam ich zastąpić i tutaj możemy sobie wybrać jakie
rzeczy chcemy wykluczać, jakie grupy. Domyślnie Mac OS mam zaznaczone Visual Studio
Code, ale pisze również Windows bo na pewno będą uczestnicy tego kursu na Windows'ie. Wpiszę
również Linux, okej. Wpiszę Node.js żeby wykluczyć rzeczy z nim związane. Będziemy
mieli również Sass, więc to również chcę wykluczyć i w zasadzie to chyba
tyle, laravel możemy też dopisać chociaż te rzeczy które tutaj skopiowałem one już
są dostępne. Wciskam Enter i ten plik gitignore tutaj
powinien nam się wygenerować. Powinien zostać zastąpiony, zobaczymy.
Tak też się stało, wszystko tutaj jest wstawione. Natomiast to co skopiowałem
wstawię na samym dole i w razie jakichś update'ów tego pliku nie będzie to usuwane. Czyli
to jest pierwsza rzecz, a druga rzecz jaką chciałbym pokazać to jeszcze przydatne dodatki do VS Code,
które nam będą pomagać w pracy z kodem PHP. Nie wiem
z jakiego edytora korzystasz, ale jeżeli jest to VS Code to polecam zainstalowanie
sobie dodatku który nazywa Intelephense. Tutaj możemy przefiltrować
po tych które mam zainstalowane, okej. Znajdźmy
ten dodatek. Jest to PHP Intelephense nie intellisense.
On nam będzie podpowiadał składnie PHP, będzie nam pomagał importować
różne moduły i tak dalej więc bardzo się przydaje, natomiast oprócz tego jeszcze wyszukaj
my tutaj laravel. Mam taki dodatek Laravel 5 Snippets. Można
z niego skorzystać i jak widzisz dużo szybciej tworzyć takie kawałki
kodu oraz ten, który jest bardzo też przydatny Laravel Blade Snippets
i on nam się przyda do tego żeby pracować z templatkami blade o
których będzie w jednej z kolejnych lekcji. Więc polecam ci na początek zainstalować sobie
te dwa dodatki oraz Intelephense i będziesz miał wszystko dokładnie
tak u mnie, więc nie będziesz się zastanawiał dlaczego u mnie coś jest podpowiadane, a u
ciebie na przykład nie. Natomiast jeżeli korzystasz z innego id to było tematu. Poza
tym tyle tej lekcji. Utworzyliśmy sobie swój pierwszy projekt. Jak widzisz wirtualna maszyna
jest uruchomiona, ale my w ogóle nie musimy o niej myśleć. Jest
to tutaj dokładnie. Wystarczy, że sobie zminimalizujemy takie
okno terminala i możemy pracować zmieniając coś tutaj w naszym kodzie i odświeżając
okno przeglądarki.