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 i w kolejnych lekcjach zobaczysz jak działa model MVC w praktyce
czyli będziemy i modele, widoki które już mamy i kontrolery. W tej
lekcji pokażę ci jak wygenerować controller i w jaki sposób controller działa. Czyli
jeżeli teraz byśmy sobie przeszli pliku web to zauważ, że my
tutaj korzystamy z takich funkcji anonimowych, tak byśmy powiedzieli w języku JavaScript, w
php one są nazywane domknięciami, czyli closure i nie
ma w tym nic złego aczkolwiek na dłuższą metę lepiej jest korzystać
z kontrolerów a szczególnie tam będziemy mieli jakąś logikę więc będziemy
chcieli tutaj zamienić tę funkcję anonimową na controller. Do tego
celu będzie nam potrzebne narzędzie które nazywa się Artisan i zauważ, że tutaj mamy
taki specjalny plik artisan. On się tutaj znajduje. Jeżeli byś go
podejrzał to by się okazało że jest to plik php, więc jeżeli wykonamy go komendą
php, czyli naszym plikiem wykonywalnym, to będziemy
mogli mieć dostęp wszystkich funkcji które tam się znajdują. Natomiast my chcemy go
wykonać wewnątrz maszyny wirtualnej, więc musisz zalogować się do homestead za
pomocą vagrant ssh i teraz będziemy mogli wykonać polecenie php
artisan, ale musimy przejść jeszcze do odpowiedniego katalogu czyli
code i teraz jeżeli wpiszemy php artisan to zauważ, że
zostanie do nas zwrócone coś takiego. Mamy tutaj całą pomoc i okazuje się
że artisan ma mnóstwo komend, które możemy wykonywać z wielu z
nich będziemy korzystać w tym kursie. Jedną z nich jest na przykład route,
jeżeli sobie znajdziemy coś takiego route list. Jeśli byśmy wpisali php
artisan route list to możesz zobaczyć wszystkie
ścieżki jakie zostały zdefiniowane w naszej aplikacji. Jak widzisz
tak to wygląda. Natomiast my będziemy chcieli skorzystać z php artisan make
i funkcja make przyjmuje różne parametry. My będziemy
chcieli utworzyć kontroler, więc wpiszemy make controller i musimy podać
jego nazwę. Zanim to zrobię zobaczmy co jest katalogu app, app http
controllers. Jak widzisz mamy tutaj out oraz controller php. Nie ma tutaj
nic innego, więc teraz jeżeli podamy sobie post controller
i wcisnę enter, zostanie wygenerowany controller, który
znalazł się w tym miejscu. Jeżeli chcemy mieć controller który będzie
nam kontrolował jakby wyświetlanie czy dodawanie, usuwanie, w zasadzie
wiele rzeczy tutaj może się znaleźć postów, to nazywamy go post controller i możesz go
nazwać dowolnie aczkolwiek przyjętą konwencją jest zawsze kończymy nazwę słowem
controller, a zaczynamy słowem jakby modelu czy rzeczy
które ją dotyczy. Model będziemy mieli jednej z kolejnych lekcji, wtedy to stanie bardziej jasne. Niektórzy
tutaj używają liczby mnogiej czyli posts controller. Ja
używam liczby pojedynczej, to jest kwestia preferencji. Różnie to
wygląda z różnymi zapisaniami możesz się spotkać. Natomiast skoro artisan
wygenerował nam taki controller to zobaczymy co w tym pliku się znajduje. Jak widzisz
nic szczególnego, tak naprawdę mamy tutaj klasę i warto wiedzieć, że w laravel
praktycznie wszystko opiera się klasach, będziemy mieli później modele to również będą
klasy i mamy ustawiony odpowiedni namespace, czyli widzisz że
jest to app http controllers i to odpowiada tak naprawdę tej ścieżce, czyli app http
controllers i nazwa naszej klasy. To dlatego że laravel
podąża najlepszymi praktykami które są od lat w branży PHP czy w
tym środowisku programistów PHP i jednym z takich standardów jest PSR-4
który mówi nam jaki sposób powinniśmy tworzyć namespace'y i
jak one powinny odzwierciedlać ścieżkę na dysku. Dlatego
właśnie tak wiele dodatków które są tworzone teraz przez społeczność PHP
są ze sobą kompatybilne bo one podążają za jednym wspólnym standardem. Dlatego
jeżeli tutaj mamy app http controllers to musi również na dysku być to
odwierciedlone w ten sposób. No i jak widzimy nasza klasa post controller rozszerza główną
kasę controller, która jest tutaj. Ona z kolei korzysta różnych trait'ów, nie
jest to dla nas na razie istotne. Istotne jest to że tutaj możemy stworzyć sobie
publiczną metodę którą możemy dowolnie nazwać. Natomiast ja
tą metodę nazwę indeks, zaraz ci powiem dlaczego i ta
metoda zwróci nam dokładnie to co mamy tutaj, czyli wszystko co było tutaj wytnę,
wstawię to w to miejsce, zapisuje I teraz
możemy zrezygnować z całej tej funkcji która tutaj była a jako string podać
nazwę czyli posts, posts controller, małpka index. Spiesze
już z wyjaśnieniem. Otóż laravel widząc coś takiego wie,
że musi utworzyć nową instancję klasy post controller, a następnie
po przejściu pod ten adres wywołać jej metodę o nazwie index i teraz
dlaczego nazywają te metoda index, bo ona będzie nam służyć do wyświetlania wszystkich wpisów. Jeżeli
controller dotyczy post'a to index oznacza wyświetlamy wszystkie wpisy. Jeżeli
będziemy mieli wyświetlanie pojedynczego wpisu wtedy metoda nazwiemy show i tutaj
podążamy za taką praktyką, która się nazywa resourcefull. Controller można z
użyciem artisan też taki wygenerować. Będziemy to również robić później. Nie zmienia to
jednak faktu że tą metodę możesz nazwać jak tylko chcesz, ale zostały
przyjęte pewne standardy za którymi ja również podążam. I teraz jeżeli zrobimy
coś takiego i odświeżymy naszą stronę, wszystko działa
zupełnie tak jak wcześniej. Natomiast teraz mamy lepsze rozbicie
tej logiki dlatego że tutaj w web definiujemy wyłącznie ścieżkę
oraz controller. Każdą logikę którą będziemy potrzebowali
jakąkolwiek będziemy mogli wstawić sobie tutaj do controller'a. Jeżeli
tutaj z kolei będzie za dużo logiki, będzie można ją wyekstrahować później do serwisów,
ale o tym powiemy w dalszej części tego kursu i jak zatem widzisz
mamy tutaj tak naprawdę klasyczny model MVC, czyli mamy, nie
mamy jeszcze modelu, ale on będzie za moment. Modelem może być ta tablica, którą mamy
tutaj. Mamy widok do którego to wszystko wstawiamy, czyli tutaj i
mamy controller, który tym wszystkim się zajmuje.