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
Jeżeli jesteś szczęśliwym posiadaczem Maca to pokażę w tej lekcji dlaczego
właśnie uważam że masz szczęście. Otóż zainstalujemy sobie takie narzędzie
które nazywa się Laravel Valet. Ja będę je nazywał po prostu
Valet i jest to narzędzie które skonfiguruje nam automatycznie nginx,
czyli serwer oraz hosty i to oznacza że będziesz mógł przeglądarce wpisać
sobie na przykład moja aplikacja kropka test i będzie serwowana aplikacja
z użyciem języka PHP z katalogu który będzie przez
nas wcześniej wybrany. Jeżeli będziesz chciał mieć moja aplikacja 2 kropka
test to utworzysz tylko folder nazwie moja aplikacja 2 i automatycznie
będziesz mógł bez żadnej dodatkowej konfiguracji otworzyć taką stronę w przeglądarce. Ważne również
jest to że za każdym kiedy uruchomisz system to w tle będą
uruchamiane wszystkie usługi i one od się uspokoję nie zużywają
wiele zasobów komputera. Kiedy z nich nie korzystasz to kilkadziesiąt megabajtów
RAM i to jest wszystko więc ja pracuję co dzień ten sposób po prostu włączając
komputer od razu mam wszystko uruchomione, nie muszę nic klikać, wchodzę do przeglądarki
pod odpowiedni adres, moje aplikacje się wczytuje, otwieram tę aplikację
w edytorze kodu i mogę od razu pracować. To jest najlepsze rozwiązanie, według
mnie, jeżeli chcesz bardzo produktywnie pracować. Niestety dostępne wyłącznie na Maca. Przejdźmy
zatem do rzeczy na początek będziemy potrzebowali brew. Jeżeli jeszcze nie masz
na Macu brew to zachęcam cię do instalacji tego narzędzia. Taką linkę jak tutaj widzisz
należy skopiować i wkleić w terminalu. Jeżeli to zrobisz to będziesz miał dostęp narzędzia
pod komendą brew i z niego będziemy chcieli właśnie teraz skorzystać. Na
Macu od razu kiedy wyjmiemy go pudełka mamy zainstalowane języka PHP. Nie mniej jednak
będziemy chcieli zmienić ten język na nowszą wersję. W zasadzie to na najnowszą dlatego
wpiszemy brew install PHP i zostanie dla nas zainstalowana najnowsza
stabilna wersja tego języka. Na ten jest to 7.3.2. Jak
widzisz u mnie jest taki oto komunikat bo już tam wersję po prostu mam zainstalowaną. U
ciebie będzie się ona instalować i na końcu będziesz miał już dostęp do polecenia PHP
gdzie będziesz mógł sprawdzić wersję tego języka. Kolejną rzeczą
która jest potrzebna żeby pracować z laravel'em jest MySQL. Możesz
również zainstalować to z użyciem brew, wpisując brew install mysql. Ja
natomiast pracuje z Maria DB więc mnie jest to Maria DB i Maria DB
jest to Open Source'owy port MySQL'a, a to oznacza że jest w stu procentach
kompatybilny. Możesz się zalogować normalnie poleceniem mysql,
wszystko wygląda tak samo ale jest to po projekt Open Source z którego
coraz więcej osób korzysta, więc u mnie jest to Maria DB, u ciebie może być to MySQL,
więc możesz wpisać takie polecenie jak ja teraz wpisałem, również
Maria DB się zainstaluję i zostanie przez brew tak skonfigurowana, aby być uruchamiana za
każdym razem kiedy uruchomisz system i teraz kolejna rzecz która jest potrzebna jest
to composer. Ja już mam go zainstalowanego. Myślę, że
wiesz do czego to narzędzie służy jeżeli pracowałeś z językiem PHP. Niemniej jednak pokażę
ci jak Macu poprawnie zainstalować composer'a, na stronie get composer org
ukośnik download mamy instrukcję. Natomiast troszeczkę ją z modyfikujemy. Pierwsza
rzecz kiedy mamy już język PHP i polecenie PHP jest dostępne to
zrobimy sobie coś takiego. To pobierze nam plik composer setup PHP. Taka
linijka z kolei sprawdzi nam czy ma on odpowiedni hash, czyli czy podczas pobierania
żaden sposób nie został zmodyfikowany. Jak widzimy verified
i trzecią linijką możemy go zainstalować. Jednak chciałbym tutaj dodać
dwa argumenty, które są istotne. Okej czyli
będziemy chcieli dopisać po pierwsze install dir i ustawić
go na user i następnie local
bin. Dzięki temu będzie ten komputer dostępny bez problemu globalnie
bo jest ten katalog dodany do naszej ścieżki i drugi który
chcemy dodać jest to filename composer,
chcemy prostu aby pod composer to było dostępne a nie pod composer kropka phar. Jeżeli
teraz to zrobię powinien się composer zainstalować bez problemu. Jak widzisz
jest zainstalowany i można po prostu sprawdzić jego
wersję w ten sposób i ostatnia rzecz którą będziemy chcieli zrobić to usunąć
plik który nam się wcześniej pobrał. Okej mamy już composer'a i z
użyciem composer'a możemy zainstalować, takie jak są tutaj pokazane laravel valet. Robimy
to wpisując takie oto polecenie, global
require oznacza, że instalujemy jakiś moduł z composer'a globalnie. To
może chwilę potrwać, ale na końcu będziemy mieli dostęp do polecenia valet, okej.
I teraz jeżeli pisze valet jak widzisz mam dostęp właśnie do takiego
narzędzia i musimy wpisać valet install, podać
hasło dlatego że tutaj pewne rzeczy są wykonywane sudo, okej
i valet zainstaluję dla nas wszystko co jest potrzebne, u mnie jak widzisz on zatrzymuje
nginx, ale to wynika wyłącznie z tego że ja to narzędzie po prostu już mam. U ciebie będzie
troszeczkę inny tutaj wynik na ekranie, ale koniec końców zostaną zainstalowane
wszystkie potrzebne usługi. Okej na końcu będziemy mieli komunikat o
pomyślnej instalacji i teraz będę chciał zrobić jedną rzecz. Jestem
katalogu domowym, w tym katalogu ja u siebie zawsze mam utworzony katalog Sites. Teraz
go ma więc go utworzymy, mk dir -p i utworze sobie Sites i w nim chcę
utworzyć katalog larablogger w którym będziemy pracować tym kursie. Okej,
przejdziemy sobie teraz do Sites, jak widzisz mamy larablogger, ale będąc w Sites wpiszemy
valet park. To oznacza że chcemy go zaparkować i jakby w tym
katalogu i to oznacza tylko tyle teraz, jeżeli w przeglądarce
piszemy sobie larablogger.test to będziemy mieli
dostęp właśnie do plików z tego katalogu więc przejdźmy do larablogger, okej.
I tutaj bym chciał otworzyć jakiś plik na przykład touch
będzie to test.txt. Taki plik się pojawił i teraz
jeżeli wrócimy do przeglądarki i w nowym oknie przejdziemy pod larablogger
to jak widzisz będzie
dla serwowany właśnie ten plik. Okej teraz tutaj mamy not found, ale
to wynika tylko z tego że z katalogu public będą rzeczy też serwowane
bo tam zainstalowany laravel. Jeśli bym tutaj utworzył katalog public
i przeniósł plik test do public to powinien on
tutaj być w jakiś sposób wyświetlony, okej, musielibyśmy tutaj dopisać
jeszcze test.txt i ten plik jak widać się wczytał, ale że jest
pusty to nic tutaj nie zobaczyliśmy. Tym się zupełnie nie przejmuj. Ważne jest
to że to wszystko poprawnie działa i będziemy mogli w jednym kolejnych lekcji
zainstalować sobie laravel'a i w ten sposób go serwować. Natomiast jeżeli będziesz pracował
u siebie nad innymi projektami to przechodząc do katalogu Sites, tutaj
będziesz mógł otworzyć dowolny projekt na przykład moja aplikacja i wtedy przeglądarce moja
aplikacja kropka test będzie dla ciebie dostępne. Ważne że również
możesz przejść sobie przykład do larablogger i pisać valet secure
i to kolei sprawi że zostanie wygenerowany odpowiedni certyfikat i będziemy
mogli po https łączyć się z naszą stroną, jeżeli pewne rzeczy będziesz chciał przetestować, właśnie
na tym protokole. Sprawdzimy jeżeli teraz odświeżymy naszą stronę
to jak widzisz jest ona serwowana już po protokole https.
Jeżeli chcesz tego zrezygnować, to wystarczy że wpiszesz valet
unsecure i to zostanie wyłączone. Jeżeli jesteś ciekaw
jakie jeszcze inne możliwości oferuje valet polecam ci przeczytać jego dokumentację. Powiem
ci tylko na koniec że możesz na przykład zmienić rozszerzenie test na inne, ale
warto żeby ona tutaj było jakieś nie używane
przez globalne domeny. Przez długi czas można było te używać kropka dev, ale
później okazało się że Google korzysta z takiej domeny więc zostało to zmienione na test
ale można to dowolnie konfigurować. To zatem tyle, jeżeli
będziesz na Macu pracował uzyciem valet to po prostu uruchamiasz komputer,
wpisujesz adres na pasku przeglądarki i możesz cieszyć się oglądaniem
swojej aplikacji. Otwierasz ją w swoim edytorze kodu i możesz po prostu nad
nią pracować. W tle masz już uruchomiony MySQL, PHP i nginx.