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
Od początku tego kursu być może zauważyłeś, że mamy tutaj link do RSS i będę
chciał ci pokazać jak teraz z pomocą kolejnej paczki dostępnej dzięki społeczności
programistów php skupionych wokół framework'a laravel. Jak za
pomocą takiej paczki możemy wygenerować w dosyć prosty sposób taki RSS Feed. Ta
paczka nazywa się spatie laravel-feed i spatie,
gdybyś tutaj do nich przeszedł oni robią mnóstwo bardzo dobrych popularnych dodatków
do laravela z których ja bardzo często korzystam. Niemniej jednak będziemy
chcieli skorzystać dzisiaj konkretnie z laravel-feet. Skopiujemy
sobie to co tutaj jest, czyli composer require, będziemy podążać po prostu za samą
dokumentację, która tutaj jest, bez mojej pomocy również byś sobie na pewno poradził,
ale wybrałam ten dodatek po to, żeby pokazać ci że w przeciwieństwie do tego,
który był w lekcji poprzedniej, który był błyskawiczny do dodania i do
użycia to czasami musimy troszkę więcej skonfigurować, ale nie zmienia
to faktu, że tutaj wszystko jest bardzo dobrze opisane i bez problemu każdy sobie
z tym poradzi. Spróbujmy zatem za pomocą komputera zainstalować sobie laravel-feed. W
moim przypadku będzie pewien błąd, który być może u ciebie nie wystąpi,
bo ten kurs przerabiasz troszeczkę później niż ja go nagrywałem i ten problem może być
rozwiązany. Zaraz zobaczysz jaki to jest problem i powiem ci jak możemy chwilowo
go obejść. Zauważ, że composer nam nie zainstalował
tego co prosiliśmy, bo doszedł do takiej konkluzji, że w zasadzie
to musiałby nie instalować paczki Carbon w wersji
2.14 i teraz Jeżeli dobrze się w to czytamy to wygląda na to dodatek,
który chcemy zainstalować czyli laravel-feed wymaga Carbon
w wersji 1, czyli to może być maksymalnie do 1.9, natomiast
sam laravel wymaga Carbona w wersji 2 i one się tutaj nie mogę dogadać
i zasadzie wydawałoby się, że nic z tym nie możemy zrobić, bo to twórcy
tego dodatku laravel-feed muszą w pliku composer json
poprawić i zaktualizować swoją paczkę do
wsparcia Carbon wersji 2.0, Natomiast możemy to obejść
bo tutaj widzimy, że minimalna wersja jakiej wymaga laravel
to w zasadzie jest 1.26. Jeżeli teraz ręcznie byśmy sobie zainstalowali, czy
wpisali composer require nesbot
carbon dwukropek 1 26
3 coś takiego a pozostałe paczki powinny
zostać zdowngrade'owane w taki sposób, aby korzystać właśnie z tej wersji, czyli niektóre
paczki będziemy ich troszeczkę starszych wersjach, ale dzięki temu będziemy mogli zainstalować
sobie laravel-feed. Okej
teraz spróbujmy jeszcze raz zainstalować laravel-feed. Okej
jak widzisz w tym razem się udało więc możemy przejść do konfiguracji, która jest
tutaj dokładnie opisana. Po pierwsze musimy sobie dodać coś takiego jak Route feeds
w web, więc zrobimy to gdzieś
tutaj. Przy okazji tutaj zauważyłem, że zapomniałem o usunięciu
Auth routes. Możemy będąc już prawie na samym końcu tego kursu
teraz to zrobić, to w niczym nie przeszkadza, ale możemy to usunąć, bo my wszystkie ścieżki tutaj
sobie tak czy siak przepisywaliśmy. Jeżeli tutaj zarejestrujemy route feeds i wpiszemy
php artisan route list to
gdzieś tutaj powinna się pojawić taka ścieżka prawdopodobnie na samej górze o nazwie
feeds main, ale na razie ona kieruje taki główny adres czyli slash
ale to się zmieni za moment kiedy jeszcze dodamy pewne rzeczy do konfiguracji, więc idziemy
sobie krok po kroku. Teraz musimy zrobić coś czego też jeszcze nie widziałeś i to
dosyć często pojawia się przy różnych dodatkach które instalujemy, a więc
vendor publish i ta komenda, tak naprawdę z katalogu vendor, czyli
tam gdzie zależności zainstalowane przez composera. Publikuje nam, czyli kopiuje
pewne pliki do naszego katalogu na przykład App i to są już pliki, które u
nas będą zapisane w repozytorium na przykład git'a więc
chcemy to skopiować i również wywołać tutaj i taki config jak
widzisz został zapisany w config feed teraz będziemy
tutaj mogli sobie go skonfigurować, ale za sekundę dopiero tam wrócimy dlatego
że, najpierw przejdziemy do usage. Skopiujemy
sobie te dwie rzeczy, które będą nam potrzebne i przejdziemy w naszym przypadku do post, bo
chcemy w tym RSS Feed mieć oczywiście wpisy, więc nas jest to model
post. Dlatego tam właśnie przejdziemy. Dodam na
samej górze użycie właśnie Feedable i Feed
i teraz musimy tutaj zrobić implements Feedable
i musimy dodać jeszcze jedną metodę, którą możemy skopiować z
dokumentacji i jest to metoda toFeedItem i co ta metoda
robi. Mianowicie kiedy ten RSS Feed będzie generowany to
na każdym naszym modelu post'a będzie wyłowywana metoda to toFeedItem
i to co my tutaj z wrócimy to będzie mogło dostępne publicznie właśnie
w takim w takim feed'ie czyli toFeedItem, id tutaj mamy, tytuł
też sam, ale to jest takie streszczenie. Być może pamiętasz, że u nas jest to excerpt,
a jest to nic innego jak dodany przez nas atrybut getExcerptAttribute,
więc możemy tutaj spokojnie z niego skorzystać update_at jest również
okej. Jeżeli chodzi o link to my nie mamy czegoś takiego na modelu post jak
link, więc moglibyśmy do dodać lub możemy tutaj skorzystać spokojnie nie route
i jeżeli jeszcze byśmy do web zerknęli to nasza ścieżka
do pojedynczego posta nazywała się post single i trzeba tam przekazać
slug więc wpiszemy sobie posts.single, slug
będzie pod this, bo to this pamiętaj to jest tak samo jak post mieliśmy wcześniej na
przykład w widokach, dlatego że jesteśmy tutaj wewnątrz klasy a zatem this slug
i teraz jeśli chodzi o author'a to my mamy taką rzeczywiście relacje tutaj,
jak autor, natomiast musimy zwrócić nazwę tego autora czyli jego imię
i nazwisko będzie to pod author name i to z kolei przypomnę
ci jest dostępne na user, czyli jeżeli mamy username a użytkownik
czyli user jest naszym autorem, stąd właśnie to się bierze. Kolejna
rzecz, którą należy zrobić to dodać metodę statyczną getFeedItems. Również ją
dodajemy tutaj i ona mówi nam co ma zostać zwrócone
i na czym dopiero później będzie wywoływana ta metoda create, więc w
naszym przypadku oczywiście musi to być post i nie all, nie wszystkie ale skorzystamy queryscope,
który już do dawaliśmy, czyli published. Mówimy, że chcemy zwrócić tylko te opublikowane
i domyślnie posty premium również nie będą zwracane i tutaj musimy
użyć get, żeby rzeczywiście ta kolekcja została zwrócona, bo kiedy korzystamy
z all od jest zwracane natomiast samo published tylko przygotowuje
nam query. Jeżeli jesteś ciekaw skąd się to to pamiętaj że dodaliśmy to właśnie
tutaj, query jest zwracane i na końcu tego query używamy get. Okej, no
i teraz wrócimy sobie do konfiguracji. Zauważ, że tutaj musimy podać w
items nazwy klasy i metody. Metodę dodaliśmy getFeedItems,
dokładnie tak jak nas poproszono, chociaż jak widzisz można ją by było zmienić. Nazwa
klasy modelu to w naszym przypadku jest app post i teraz
jeszcze url pod jakim chcemy ten feed mieć. Wpiszmy sobie tutaj po prostu feed. Teraz jeżeli
przejdziemy tutaj wpiszemy php artisan route list
to powinna być taka ścieżka jak feed gdzieś tutaj dostępna zgadza
się. To jest feed feeds.main. Jest tutaj, teraz
możemy przejść do master, do widoku właśnie
gdzie mieliśmy podlinkowane rss i wpiszemy sobie tutaj
route podając to name będzie to feeds name. To
powinno nam odpowiednio już tutaj link wygenerować. Po najechaniu widzimy
kieruje to do feed i teraz uwaga klikamy i pojawił
nam się jakiś błąd. Okej widzę, że on na pewno był w konfiguracji,
być może ty to zauważyłeś, tutaj powinna być ta małpka. Jeszcze
raz spróbujemy i jak widzisz taki RSS Feed nam się wygenerował zaraz ci pokażę
jak możemy go podejrzeć, ale jest on poprawny. Może zmienimy sobie tylko tutaj
jeszcze jego tytuł. Napiszemy Larablogger i w zasadzie
tyle wystarczy. Skopiuję sobie jego adres i przejdę do
programu, który nazywa się reader i taki feed będę chciał sobie dodać. Podaj
jego adres i tam wyszukaj. Jak widzisz jest robimy
subscribe i powinniśmy tutaj od razu mieć wczytane posty.
Dokładnie tak też się stało. Zauważ, że to wszystko działa, mamy tutaj autora,
mamy datę modyfikacji, mamy nazwę, którą przed momentem wpisałem,
mamy streszczenie i będziemy mogli przeczytać również cały wpis
w taki oto sposób. Jak zatem widzisz mieliśmy tutaj troszeczkę
więcej kroków do wykonania, ale również było to dosyć proste, bo było bardzo
dobrze tutaj opisane. To powinno ci powiedzieć jedno. Te
dwa przykłady, które pokazałem ci w tej lekcji i poprzedniej, że niemal wszystko
co tylko sobie wymyślisz, że chciałbyś mieć we frameworku laravel albo
już w nim jest albo bez problemu możesz dodać za pomocą rozszerzeń, która jest społeczność
aktywnie cały czas tworzy i rozwija. Myślę zatem, że na tym etapie jesteś
gotowy, żeby napisać jakąś fajną ambitną aplikacje, aczkolwiek to
jeszcze nie koniec naszego kursu, bo zajmiemy się jeszcze kilkoma istotnymi tematami.