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ć Laravel Homestead dla
systemu Windows i teraz jeszcze dwa słowa na temat tego czym Homestead jest. Jest
to nic innego jak wirtualna maszyna Linux'a konkretnie Ubuntu, która będzie
uruchomiona na Windowsie. Do tej maszyny będziemy się mogli połączyć za pomocą ssh
i w Linuxie wykonywać pewne komendy, które będą nam potrzebne, ale co
najważniejsze ta wirtualna maszyna ma już preinstalowane PHP, MySQL,
nginx, Redis i zasadzie wszystko co jest nam potrzebne aby pracować
z frameworkiem laravel. Czyli nie będziesz musiał u siebie na Windowsie instalować wszystkich
tych rzeczy, nie będziesz musiał korzystać z rzeczy typu XAMPP czy WAMP, tym
bardziej że one mają swoje ograniczenia i trudno byłoby na nich uruchomić laravel'a
szczególnie nie moglibyśmy korzystać z pewnych komend, które potrzebujemy z wiersza poleceń wykonywać, więc to jest pierwszy
plus, drugi jest taki, że będziemy pracować w środowisku, które będzie
odpowiadało temu jakie na koniec tego kursu będziemy mieli produkcyjnie. Czyli
będzie to też system Ubuntu i na nim gdzie mogli postawić już produkcyjną
naszą aplikację. Aby zainstalować Homestead będziemy potrzebowali
kilku komponentów więc pierwszym z nich jest Git jeżeli Git'a jeszcze nie masz systemie
zainstaluj go dla Windowsa właśnie tej strony i co jest bardzo ważne przy instalacji upewnij
się że będzie tam zaznaczona opcja bash czyli żeby git bash również
został zainstalowany jeżeli już będziesz miał git'a, przejdź na
stronę Vagrant'a i zainstaluj dla swojego systemu, będzie to najprawdopodobniej tutaj
64 bity. Ściągasz i zupełnie standardowa instalacja
bez żadnych niespodzianek i trzecia rzecz która będzie nam potrzebna jest to Virtual
Box do uruchomienia maszyn wirtualnych. Kliknij tutaj Windows Hosts, pobierz i
również zainstaluj i teraz Virtual Box uruchamia nam wirtualną maszynę
natomiast sam Vagrant pozwala nam ją kontrolować, na niej instalować
różne oprogramowanie i właśnie z Vagrant'a korzysta Homestead, więc kiedy
te trzy rzeczy będziesz miał zainstalowane to będziemy chcieli przejść do terminala. Natomiast
nie otwieraj zwykłego wiersza poleceń, ale otwórz git bash. Ja
sobie tutaj utworzyłem skrót czyli po instalacji git'a będziesz miał
dostęp zobacz do takiej ścieżki bash.exe i
dokładnie ten terminal chcemy otworzyć. Dlaczego to takie ważne? Otóż
mamy tutaj terminal który będzie wykonywał większość komendy linuksowych.
Czy w zasadzie i uniksowych i dzięki temu to co będę wpisywał u ciebie również będzie
działać i będziemy tutaj mogli korzystać z komend które normalnie w wierszu poleceń Windows'a
nie są dostępne, po poprawnej instalacji Vagrant'a powinniśmy tutaj mieć
dostęp to właśnie Vagrant. Czyli możemy wpisać na przykład że powinno
to bez problemu działać. Zatem zgodnie z dokumentacją, którą mamy
tutaj, w razie czego polecam ci żebyś sobie ją przejrzał będziemy chcieli
wykonać pierwszy krok. To jeszcze jest duże czerwone ostrzeżenie o którym
zapomniałem powiedzieć, żeby można było uruchomić wirtualne maszyny w VirtualBox'ie
to musisz swoim komputerze mieć skonfigurowane VT-X. Jak
to zrobić? Będziesz musiał poszukać w Google, jeżeli coś nie będzie działać. Jeżeli będzie
działać nie musisz tym interesować, ale ważne że to powinno być ustawione
w twoim systemie aby on pozwalał na uruchamienie maszyn
wirtualnych. Czasami trzeba to zrobić po prostu w biosie, OK, wróćmy
sobie zatem do naszego terminala i pokażę w jaki sposób zainstalować
Homestead. Pierwsze co będziemy chcieli wpisać to vagrant box add
i następnie laravel ukośnik homestead. Vagrant
będzie nam ściągał taki box. To może chwilę potrwać dlatego ja za moment anuluje
to pobieranie i w tle skopiuje sobie już gotowy box. Natomiast ty
będziesz musiał poczekać aż wszystko pobierze co ważne tutaj musimy wybrać jako
provider trójkę czyli VirtualBox właśnie to środowisko
zainstalowaliśmy i teraz rozpocznie się proces pobierania tego boxa i
po prostu tutaj musisz cierpliwie poczekać. Ja jednak anuluje
ten proces za pomocą Ctrl+C, i w tle ja skopiuje sobie już gotowy
box i za moment wracam, ok gotowe, u mnie ten
box jest skopiowany, u ciebie musi się pobrać. Natomiast po zakończeniu całej operacji
będziemy w tym samym momencie. A więc możesz pisać vagrant i następnie
box list. Powinno ci pokazać mniej więcej coś takiego może tam
oczywiście być inna wersja, okej, kolejną rzeczą którą potrzebujemy
zrobić i wróćmy sobie do dokumentacji, jest sklonowanie repozytorium
Homestead więc skopiuj to co mamy tutaj i wkleję w tym miejscu. Taki
znaczek oznacza katalog domowy, to w unix'ie czyli na przykład na Macu na Linuxie
dostępne i tutaj na Windowsie będzie dostępne dzięki właśnie git bash więc
powinno pozostać sklonowane i będziemy musieli do tego katalogu homestead przejść
w ten sposób, okej, i tutaj
musimy przejść na gałąź stabilną tutaj jest to dokładnie opisane więc możesz się
posługiwać również tą dokumentacją. Jeżeli przejdziemy na github Release Page
to zobaczymy jaka jest najnowsza stabilna wersja. Widzimy, że jest to 8.1.0
to wtedy tutaj musimy wpisać git checkout v8.1.0
okej i następnie musimy uruchomić skrypt który tam się
znajduje. Jest przygotowany dla Windowsa dla Maca czy dla Linuxa zasadzie Maca,
Linuxa czy Unixa. Natomiast będąc tutaj jest git bash, możemy bez problemu go
uruchomić za pomocą polecenia bash, bash init.sh. Widzimy
Homestead Initialized i teraz będziemy potrzebowali jeszcze
wygenerować sobie klucz publiczne i prywatny do łączenia się po ssh.
Znowu w tej konsoli, w której teraz jesteśmy mamy do tego już odpowiednie narzędzie
więc będę chciał pisać coś takiego również to zrób ssh-keygen
następnie minus t rsa i tyle
wystarczy. Zobaczmy, tutaj podamy Enter, tutaj
pyta czy go zastąpić bo ja już to wcześniej robiłem więc podam yes, u ciebie tego nie powinno
być. To będzie pytał o passphrase, wciśnij prostu enter,
jeszcze raz enter i widzimy że taki klucz się nam utworzył. To
trzeba zrobić raz i teraz będziemy już mogli skonfigurować sobie Homestead i spróbować
go uruchomić, więc ja będę chciał otworzyć w edytorze kodu Visual
Studio Code, katalog w którym się teraz znajdujemy więc piszę code kropka
i to uruchomić ten edytor kodu. Okej jeżeli u ciebie tak
to nie będzie działać to po prostu uruchom go w dowolny inny sposób. Dwukrotnie się
uruchomił więc jeden możemy zamknąć a drugi sobie powiększymy
i teraz tutaj pojawił się plik Homestead.yaml, który chcemy skonfigurować.
Adres IP naszej maszyny która będzie się uruchamiać i po tym
adresie będziemy mogli przechodzić w przeglądarce web servera zostawimy
taki jak jest. Jeżeli u ciebie będą jakieś konflikty tym adresem to musisz go
zmienić. Pamięć RAM ja zmienię na 1024 bo to w zupełności wystarczy
czyli uruchomiony Linux dokładnie tyle będzie mógł maksymalnie zużyć,
provider Virtual Box'a zostaje, klucz publiczny dopiero
co wygenerowaliśmy i on się znajduje właśnie w takim katalogu nie musimy nic zmieniać
klucz prywatny jest tutaj i teraz bardzo ważna rzecz, chcemy zrobić pewnego
rodzaju mapowanie czyli na Windowsie chcemy mieć katalog z naszym projektem,
będziemy ten katalog otwierać sobie swoim edytorze i na nim pracować ale
ten katalog chcemy żeby był jakby podlinkowany do wirtualnej maszyny żeby
ona mogła uruchamiać kod PHP który tam się znajduje. Z tego powodu
zmienimy sobie tą ścieżkę która jest tutaj, katalog domowy Sites
nazwiemy go larablogger. Tak będzie się nazywał nasz projekt i
za moment utworzymy sobie ten katalog więc po uruchomieniu maszyny wszystko
co u nas w Windowsie jest w tym katalogu będzie mapowane do katalogu wewnątrz maszyny
właśnie które nazywa się code tyle nam tutaj wystarczy jeśli
chodzi mapowanie. Jeżeli chodzi o domenę którą chcielibyśmy wpisywać przeglądarce to
nazwiemy ją larablogger.test i bazy danych która za moment
dla nas będzie utworzona wewnątrz wirtualnej maszyny nazwiemy larablogger. To
wystarczy, zapiszemy. Teraz trzeba będzie otworzyć terminal raz jeszcze,
ale ja otworzę go sobie już tutaj wewnątrz edytora VS Code, nic nie stoi
na przeszkodzie ale pokażę ci jedną opcję którą warto wcześniej skonfigurować. Jeżeli
przejdziemy sobie do preferencji to
tutaj na samym dole mam coś takiego jak Terminal Integrated
Shell Windows i podana jest tutaj jak widzisz ścieżka do git bash. Zrób
sobie również to u ciebie i teraz jeżeli będziesz otwierał terminal, który
jest tutaj wbudowany VS Code, będzie otwierany ten bash'owy, czyli taki jak przy momentem
mieliśmy otwarty na pulpicie. Okej co zatem będziemy chcieli zrobić? Najpierw
będę chciał wpisać cd żeby przejść do katalogu domowego i będę chciał tutaj utworzyć katalog Sites
i larabloger więc piszemy sobie mk dir minus -p Sites. Jeżeli
oczywiście jeszcze takiego katalogu nie masz larablogger. Okej
takie katalogi zostały utworzone, kolejną rzeczą
którą musimy zrobić jest zmapowanie adresu larablogger.test do
tego adresu IP. W tym celu musimy zmodyfikować plik hosts, ale
trzeba to zrobić z uprawnieniami administratora. Dlatego przejdziemy sobie tutaj
i na przykład git bash, mogę zamknąć to
okienko uruchomimy jako administrator, okej i
teraz będziemy to mogli zrobić. Wpiszmy sobie takie polecenie nano
dysk C Windows System32 Drivers
etc hosts dokładnie coś takiego i ten plik
będziemy mogli zmodyfikować, strzałką schodzę sobie dół i wpisuje interesujący
nas adres IP, czyli będzie to 192 168
10 10 i chcę go snapować do larablogger.test
i teraz żeby zapisać ten plik wciskamy Control O, Enter
i Control X, aby zakończyć OK, a wrócimy
sobie do edytora kodu i teraz już spróbujemy uruchomić naszą
wirtualną maszynę, co jest bardzo ważne, aby tą maszynę uruchomić trzeba
przejść do katalogu domowego czyli jest to ten katalog
i Homestead. Zawsze będziesz musiał przyjść do tego katalogu chyba
że utworzysz sobie stosownym makro o czym jest na stronie dokumentacji którą przed momentem
widzieliśmy więc w razie czego sobie zerknij. Jeżeli nie to będziesz musiał przechodzić do tego katalogu
tutaj terminalu i po przyjęciu tego katalogu trzeba wpisać vagrant
up. Za pierwszym kiedy to zrobimy to maszyna zostanie uruchomiona i wszystkie
czyli PHP i MySQL, nginx zostaną na niej zainstalowane
natomiast za każdym kolejnym uruchomieniem tej maszyny już nie będą one od nowa instalowane
więc będzie to trwało troszkę krócej czyli za każdym razem kiedy włączysz komputer musisz
wpisać w tym katalogu będą vagrant up no i tym razem musimy sobie
chwilkę poczekać. Okej i wszystko się udało i teraz
teoretycznie nasza maszyna powinno być uruchomiona więc wyczyszczę tutaj ekran i możemy
wpisać vagrant status i pamiętaj że musisz być w tym katalogu bo
wtedy wpisując status wiemy że to dotyczy właśnie tej maszyny której
mówimy i teraz zobaczymy co nam się pokaże. Jak widzisz mamy uruchomioną maszynę homestead-7
i dokładnie tak jest czyli teraz nawet bym zamknął cały ten program terminal. W tle
cały czas jest uruchomiona maszyna wirtualna. Gdybyś chciał ją zatrzymać musisz będąc
tym folderze wpisać vagrant halt i ta maszyna się po prostu
wyłączy. Będziesz miał ten stosowny komunikat. Natomiast to co nas najbardziej interesuje to
jest to że możemy się do niej zalogować po ssh, czyli jeszcze raz
wyczyszczę ekran i będą katalogu Homestead wpisuje vagrant ssh i
normalnie powinniśmy zostać zalogowani do maszyny Linuxa i
wszystkie komendy które będziemy wpisywać tutaj, wpisujemy już w Linuxie, więc
nie ma znaczenia co masz na Windowsie zainstalowane, jesteśmy teraz wewnątrz
serwera Ubuntu. Zobaczmy czy tutaj coś się znajduje, widzimy katalog code. Przejdźmy
do niego. To co jest ważne on jest tej pusty, ale dokładnie ten
katalog code odzwierciedla katalog który utworzyliśmy wcześniej czyli w katalogu
domowym użytkownika Sites i Lara bloger więc teraz będziesz
mógł u siebie, czyli na Windowsie czyli tutaj w tym edytorze otworzyć katalog larablogger. Będziesz
mógł tworzyć aplikacje laravel, a ona tak naprawdę będzie uruchomiona
wewnątrz tej maszyny wirtualnej i wszystko będzie poprawnie działać więc
na sam koniec sprawdzimy sobie jeszcze czy po przejściu do przeglądarki nam się coś pokażę. Wpiszemy
sobie tutaj przygotowany wcześniej host czyli larablogger.test. Widzisz
mamy komunikat no input file specified on wynika wyłącznie z tego że
gdybyśmy zerknęli jeszcze do edytora i do pliku Homestead.yaml i ja ja pozwolę
sobie ten terminal od zamknąć to tu jest pokazane że jak przyjdziemy taki adres to wewnątrz
tej maszyny wirtualnej ma nam wyświetlić to co jest katalogu code
public. Jak widziałeś my tam nic mamy, ale teraz Jeżeli w naszym systemie w
Windowsie w Sites larablogger, utworzymy katalog public to z niego
wszystko będzie serwowane właśnie w przeglądarce i ten katalog będzie automatycznie
utworzony kiedy stworzymy w jednej z kolejnych lekcji projekt z użyciem narzędzia
laravel, czyli laravel generalnie będzie taki katalog public posiadał. Możesz
mi wierzyć lub nie ale mamy gotowy cały system do
tego aby pracować i podsumowując kiedy uruchomisz sobie komputer będziesz
musiał przejść w terminalu i najlepiej korzystać z tego bash'owego bo
on fajnie działa ale terminalu będziesz musiał przejść właśnie taki
adres czyli katalog domowy Homestead tutaj
będziesz musiał wpisać vagrant up poczekać aż maszyna się uruchomi i następnie
vagrant ssh żeby do tej maszyny wejść i wszystkie komendy które wewnątrz
będziesz wykonywał są wykonywane w systemie Linux więc wszystkie komendy
linuksowe tutaj działają i kiedy będziemy tworzyć coś w tym kursie
to będziemy oczywiście z niektórych komend korzystać bo będziemy korzystać narzędzia
które nazywa się Artisan ale tym później. Na koniec możesz sobie zerknąć czy
rzeczywiście tutaj wersja PHP jest. Mamy bazy danych i mamy
wszystko wewnątrz tego boxa co jest nam potrzebne.