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 zainstalować środowisko które nazywa się Laravel Homestead
dla systemu Mac OS. Bardzo szybko powiem ci czym jest
Homestead. Otóż jest to nic jak wirtualna maszyna
Linux'a konkretnie będzie to Ubuntu która ma od razu zainstalowane język
PHP, ma serwer nginx, ma MySQL lub Maria
DB w zależności od tego co wybierzemy i wiele rzeczy które są wymagane
aby pracować z laravelem i taka wirtualna maszyna będzie u nas na Macu uruchamiana i
będziemy mogli się do niej zalogować poprzez ssh przez terminal i
wykonywać różne polecenia które będą nam potrzebne i co ważne ta maszyna
będzie wykonywała cały nasz kod PHP. Natomiast sam kod będzie u nas na
Macu w odpowiednim folderze i będzie on jakby podlinkowany do wnętrza tej maszyny,
czyli siebie na Macu będziesz mógł otworzyć normalnie w edytorze kod, tworzyć
ten kod właśnie na Macu, na systemie Mac OS, ale on będzie
wykonywany wewnątrz wirtualnej maszyny, ta maszyna będzie miała swój lokalny adres IP i po tym
adresie będziemy się właśnie łączyć poprzez przeglądarkę żeby wyświetlić stronę
czyli tak będziemy mieli wirtualny serwer na naszym Macu. Dzięki
temu nie będziesz musiał instalować u siebie PHP, MySQL czy na przykład bazy
danych Redis. Okej, pokażę ci w jaki sposób możemy to
wszystko skonfigurować i zainstalować. Tutaj jest instrukcja na tej stronie w
dokumentacji dla laravel'a i będziemy w zasadzie się tej instrukcji trzymać. Jeżeli
chcesz możesz ją przeczytać zrobić to sam jeżeli wolisz zobaczyć to formie wideo to zapraszam
cię do oglądania. Przejdźmy zatem niżej i zobaczmy
tak na szybko co będzie dla nas zainstalowane razem Homestead. Będzie to git,
będzie to PHP w najnowszej wersji, będzie to nginx z którego będziemy
korzystać. Będzie to MySQL i jak widzisz jeszcze kilka innych rzeczy. Aby Homestead
mógł działać to potrzebujemy do tego Virtual Box'a oraz Vagrant i
to są dwie rzeczy które ze sobą razem działają. Więc będziesz musiał
zainstalować sobie Vagrant lub Vagrant [różnica w wymowie], ja nie będę teraz tego robił
bo już to zrobiłam wcześniej. Pobierz sobie wersję dla systemu Mac OS czyli klikając
dokładnie ten link. Standardowy instalator, nie ma tam żadnych niespodzianek, więc
na pewno sobie poradzisz. Druga rzecz jest to Virtual Box również sobie go pobierz tutaj
wybierając OS X hosts, również standardowa instalacja,
nic tam nie zmieniaj, po prostu klikaj Next i kiedy będziemy mieli te dwie rzeczy to
będziemy mogli właśnie skonfigurować Homestead, który jest takim boksembox'em dla Vagrant'a. Natomiast
ważna informacja że nie musisz korzystać z Virtual Box'a, możesz jeżeli masz wersję
profesjonalną takiego programu Parallels na Maca, również możesz wykorzystać
do wirtualizacji ten program ale Virtual Box jest darmowy więc po
prostu z niego skorzystamy. Okej kiedy Vagrant'a już sobie zainstalujesz
to będziemy mogli bez problemu w terminalu się odwołać komendy vagrant,
tak jak tutaj jest to pokazane więc ja będę chciał teraz skopiować, przejdę do
terminala i w dowolnym miejscu wystarczy że taką komendę sobie wpiszemy
i zobaczysz za moment że poprosi nas branie
providera, właśnie tutaj zbierzemy trójkę czyli Virtual Box ale możesz
zobaczyć również Parallels albo VMware Desktop są dostępne, one
będą bardziej wydajne ale są to płatne wersję tego oprogramowania Virtual Box
jeżeli zainstalowałeś to możemy wybrać tutaj trójkę i taki box
będzie się pobierał. Natomiast to może chwilę potrwać bo on zajmuje ponad 2 gigabajty.
Dlatego ja nie będę teraz na to czekał. Ja już to wcześniej. Ja
sobie do teraz tylko przekopuje do odpowiedniego katalogu, ty u siebie musisz niestety poczekać
aż to wszystko się pobierze. Okej ja już sobie tego box'a skopiowałem,
u ciebie po zakończeniu tego pobierania powinieneś móc przejść do katalogu
swojego domowego i do takiego folderu który nazywa vagrant.d
i tam będzie boxes, powinieneś zobaczyć coś takiego to oznacza że ten box
został tutaj zainstalowany. Kolejna rzecz którą musimy zrobić, jest również
dokumentacji to jest sklonować sobie repozytorium Homestead. Zrobimy
to właśnie taką komendą więc jak widzisz musisz mieć git'a w systemie zainstalowanego. Będzie
to nam potrzebne. Wklejam i zostanie to do naszego katalogu domowego
do folderu Homestead skopiowane całe to repozytorium i teraz
w tym repozytorium trzeba będzie przejść na odpowiednią gałąź. Trzeba kliknąć dokładnie
tak jak tutaj jest napisane GitHub Release Page, Zobaczyć jaka jest
najnowsza wersja. Zerknijmy sobie. Jest to 8.1.0 i będziemy
chcieli w terminalu przechodząc do Homestead wpisać git checkout v8.1.0. Będziemy wtedy mieli stabilną
wersję właśnie tego narzędzia, okej. No teraz będąc na Macu
trzeba wykonać plik za pomocą bash czyli bash init.sh. Jak
widzisz Homestead initialized to dokładnie tutaj zapisane i nie powinno z tym
być żadnych problemów, okej. No i teraz musimy sobie tylko skonfigurować
Homestead więc pokażę ci jak to zrobić, jest to bardzo, bardzo proste. Pozwolę
sobie ten katalog otworzyć moim edytorze, jest to Visual Studio Code, okej.
I musimy otworzyć sobie plik który się tutaj znajduje, jest to Homestead.yaml. Większość
rzeczy możemy zostawić tak jak tutaj jest, jak widzisz to będzie adres IP naszej
maszyny. Jeżeli u ciebie w sieci nie są zajęte to będzie wszystko okej. Jeżeli nie to musisz go zmienić.
Ja sobie tutaj zmienię RAM na 1024 bo to w zupełności nam
wystarczy. Okej klucz publiczny i klucz
prywatny tutaj się znajduje. Normalnie na Macu powinieneś
go mieć Jeżeli go kiedykolwiek generowałeś. Jeżeli go nie generowałeś to musisz
skorzystać z polecenia, które widzisz teraz na ekranie i po wykonaniu
w terminalu jednorazowo takiego polecenia takie pliki się pojawią więc tutaj nie będziesz musiał
nic zmieniać i teraz ważna rzecz. Tutaj są mapowania. Będziemy
chcieli żeby z naszej maszyny czyli z Maca, folder
które utworzymy w Sites czyli w katalogu domowym Sites, nazwiemy go larablogger,
żeby on był mapowany do wewnętrznej, do wnętrza
naszej maszyny, do katalogu home vagrant code. To zostawimy sobie w ten sposób. Teraz
będziemy chcieli uruchamiać sobie domenę którą nazwiemy larablogger
test i chcemy żeby ona kierowała na właśnie katalog
public. To jest wewnątrz maszyny wirtualnej i tyle tutaj wystarczy zmienić, w zasadzie
możemy sobie jeszcze zmienić nazwę bazy danych która zostanie utworzona, więc
też nazwiemy ją larablogger, okej. I tyle jeżeli zrobimy
to będziemy mogli teraz w terminalu będąc z tym katalogu Homestead
wpisać vagrant up I powinno
się nasza maszyna wirtualna uruchomić. To oczywiście również
może chwilkę potrwać więc warto tutaj być cierpliwym. Dodam jeszcze
że za pierwszym razem trwa to zwykle dłużej niż później bo będziemy wielokrotnie
korzystać z polecenia vagrant up, dlatego że za pierwszym razem kiedy maszyna zostanie
uruchomiona to będzie wykonywane tak zwanej provisioning czy będą instalowane
wszystkie niezbędne dla nas zależności tak jak PHP, MySQL i
tak dalej. Okej proces ten został ukończony. Teraz wyczyszczę
ekran i wpiszemy sobie polecenie vagrant status, żeby zobaczyć czy nasza maszyna
wirtualna jest uruchomiona czy też nie. Jak widzisz mamy tutaj running,
czyli wewnątrz Virtual Box'a tak naprawdę jest uruchamiana wirtualna maszyna
i możemy się do niej zalogować będąc tym katalogu Homestead. To ważne że tutaj
musisz do niego przejść i wpisując vagrant ssh w ten
sposób zalogujemy się po protokole ssh właśnie do tej maszyny i taki
ekran powitalny nas powita i teraz super istotne jest to że każde polecenie
które w tym momencie będę wykonywał nie jest wykonywane u mnie na Macu. Ono
jest wykonywane w systemie Ubuntu, czyli wewnątrz tej wirtualnej maszyny i co
ważne tutaj powinien pojawić się katalog code, ale na razie go nie ma dlatego że
musimy jeszcze u siebie utworzyć katalog sided i w nim larablogger,
a następnie dopiero będziemy tworzyć nowy projekt. Jeżeli wyjdziemy sobie
z tej wirtualnej maszyny za pomocą exit to ona nadal jest uruchomiona
w tle i możemy do niej zalogować za pomocą vagrant ssh. Chciałbym
jednak najpierw zrobić dwie rzeczy które będą nam potrzebne. Po pierwsze przejdziemy wpisując
samo cd do katalogu naszego domowego i chcę to utworzyć folder
Sites, jeżeli jeszcze go nie masz. Ja na co dzień właśnie tam mam wszystkie strony. Przejdziemy
do tego folderu i tutaj chciałbym utworzyć folder larablogger,
okej. Przejdę do tego folderu i wewnątrz
utworze tylko testowo plik który nazwiemy test txt po
to, żeby on tam był okej i teraz jeszcze jedna rzecz. Będziemy chcieli móc się logować,
w zasadzie wyświetlać zawartość naszej strony internetowej za
pomocą larablogger.test w przeglądarce, więc musimy edytować
plik hosts i dodać sobie adres IP. Chciałbym ci przypomnieć że tutaj
mamy adres IP, więc go skopiuję, taki będzie adres naszej
maszyny kiedy ona uruchamia i wpiszemy sobie sudo to ważne musimy
użyć sudo. Następnie nano etc hosts
i będziemy chcieli edytować ten plik. Najpierw muszę wpisać
hasło. Oczywiście chodzi tutaj o hasło twoje systemowe. Przejdziemy
sobie na sam koniec i będę chciał tutaj wkleić adres IP i następnie
wpisać larablogger.test. Teraz chce ten plik zapisać,
robimy to za pomocą Control O i teraz Control X wychodzimy
z tego pliku. Okej wrócimy sobie teraz do katalogu domowego i
przyjdziemy Homestead. Tutaj możesz oczywiście utworzyć sobie
jakiś alias, który pozwoli ci szybko przeskakiwać do tego katalogu. Ja nie będę
jednak tego robił i teraz będąc w Homestead wpiszemy vagrant reload
bo chcę ci również pokazać że jeżeli cokolwiek będziesz zmieniał w tym pliku to
będziesz musiał uruchomić od nowa te maszynkę wpisując vagrant reload. Utworzyliśmy
katalog Sites który tutaj powinien być mapowane do wnętrza tej wirtualnej
maszyny i dlatego musimy zrobić reload. Mogliśmy go oczywiście utworzyć wcześniej ale
ten sposób widzisz że jeżeli coś zmienimy w konfiguracji to musimy odzwierciedlić
to czy pozwolić maszynie załapać te zmiany poprzez wpisanie vagrant
reload, okej. I teraz powinno być wszystko w porządku. Spróbujmy jeszcze
raz zrobić vagrant ssh, żeby zalogować się do naszej maszyny. Jeżeli
teraz wpiszę ls pojawi się katalog code i jeżeli do niego przejdziemy, pamiętaj,
jesteśmy w systemie Ubuntu, to widzimy tutaj nasz plik test.txt
i teraz za każdym razem kiedy w naszym systemie na Macu coś zmienimy
tutaj będzie to oczywiście odzwierciedlane. No i co ważne jeśli byśmy teraz jeszcze wrócili
sobie do przeglądarki Chrome to będziemy mogli wpisać nasz
adres czy larablogger.test i będzie
tutaj serwowany właśnie odpowiedni plik. Mamy taki komunikat no
input file specified i on wynika wyłącznie z tego że
tutaj powiedzieliśmy że ten adres ma kierować na code public. Nie
mam jeszcze folderu public, ale on nam się pojawi kiedy już w jednej z kolejnej lekcji
utworzymy nowy projekt laravel'a. Natomiast zapewniam cię wszystko działa jak należy. Na
koniec podsumowując za każdym razem kiedy uruchomić swój komputer będziesz musiał
przejść do katalogu domowego i do Homestead, czyli możesz wtedy wpisać
coś takiego. Będziesz musiał wpisać vagrant up
i to uruchomić maszynę wirtualną następnie będziesz mógł wpisać vagrant ssh w
dowolnym terminalu tutaj czy wewnątrz na przykład Visual Studio Code. Będziesz
mógł się do niej zalogować. Co ważne, jeżeli będziesz chciał zrestartować maszynę
wpisujesz vagrant reload, to już zobaczyłeś, a jeżeli będziesz chciał ją zatrzymać wpisujesz
vagrant halt, tylko ważne żebyś był właśnie w tym katalogu Homestead
który teraz tutaj widzisz. Okej to na ten tyle w tej lekcji. Mamy już gotowe
środowisko które ma zainstalowane PHP, MySQL, ma utworzoną bazę danych
i ma tam wszystko, co jest nam potrzebne aby pracować z laravel'em. Co
jeszcze ważne to środowisko bardzo dobrze odzwierciedla środowisko w którym
pod koniec tego kursu produkcyjnie uruchomimy naszą aplikację. Będzie to również system
Ubuntu na wirtualnym serwerze VPS.