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 posprzątamy sobie jeszcze troszeczkę w katalogu resources żeby
przygotować lepiej nasz frontend pod dalsze prace i też pokażę ci
że te pliki które tutaj się znajdują nie są jakoś super kluczowe i możemy dowolnie je
sobie tutaj ustawiać. Czyli jeżeli przejdziemy katalogu resources dodałem
tutaj katalog HTML i nie będzie zupełnie kluczowy żeby
znajdować się w tym miejscu. Po prostu gdzieś go chciałem włożyć po to żebyś miał niego dostęp
i w tym katalogu HTML znajduje się nasza strona internetowa przygotowana
już wcześniej w HTML i CSS. Mamy również Sass, z którego będziemy korzystać później. Będziemy
chcieli te widoki po trochę przekładać sobie na widoki laravel'a i uzupełniać je
dynamicznymi danymi ale jeżeli byśmy sobie podejrzeli jak to wygląda,
to mniej więcej taki blog będziemy chcieli przygotować. Tutaj zdjęcia się wczytują z
zewnętrznych serwerów więc czasami może to chwilę potrwać. Natomiast jeszcze
później do tego przejdziemy. Taką mniej więcej stronę będziemy chcieli przygotować i teraz
chciałbym ci uzmysłowić że w katalogu resources robisz co tylko chcesz,
to znaczy oprócz katalogu views który się tutaj znajduje i lang
tak naprawdę możesz ustawiać sobie strukturę katalogów dowolnie i prawda
jest też taka gdybyś chciał katalog views zmienić na inną nazwę również możemy
to zrobić w konfiguracji, gdybyśmy przeszli do config i gdzieś tutaj byśmy
znaleźli view, zobacz że mamy dokładnie podany ten katalog. Przy
okazji możesz również zauważyć że mamy funkcję pomocniczą dostępną
laravel. Nazywa się resource path i ona zawsze będzie nam
zwracała ścieżkę do katalogu właśnie resources
a co podasz później to będzie do tej ścieżki dokładane, czyli resources views.
Warto zapamiętać że są takie funkcje pomocnicze. Mamy na przykład ścieżkę
public path czy w zasadzie funkcje public path która nam będzie zwracać
ścieżkę do katalogu public i mamy jeszcze kilka innych tego typu funkcji. Natomiast
wracając do tego że w resources możesz zrobić co chcesz, to
ja będę chciał tutaj posprzątać, dlatego że mamy tutaj pewne kody, pewien kod
JavaScript, który nam nie jest potrzebny, więc usuwamy całkowicie co tutaj było. Jest
Sass, który nam nie jest potrzebny w takiej formie więc śmiało
możemy go usunąć i podobnie w katalogu public, to jest ten który
jest dostępny publicznie. Usuniemy CSS, który się tutaj znajduje. Usuniemy
JavaScript, który tutaj się znajduje, okej.. I teraz z naszego katalogu będę
chciał CSS skopiować i wkleić go tutaj. Podobnie
będę chciał zrobić z Sass, będę chciał Sass skopiować i wkleić
bezpośrednio do resources czyli paste. Na
razie nic tutaj się zupełnie nie wydarzy, może jeszcze odświeżmy, chyba się nie wkleiło,
okej. Na razie nic tutaj się nie wydarzy
ale ten Sass będzie nam później potrzebny, będę chciał jeszcze skopiować images, a
więc copy i wrzucimy je do public, bo pamiętaj że obrazki żeby były
widoczne to musimy mieć je w katalogu public. Ok i w
zasadzie tyle nam na razie wystarczy, a te widoki będziemy, z nich
będziemy później korzystać. I teraz dlaczego w katalogu resources możesz to ułożyć jak
chcesz? Otóż wynika to z tego że workflow ten frontend'owy sam
sobie ustalasz za pomocą na przykład tego pliku webpack mix o którym jeszcze później
będziemy mówić więc ty możesz tutaj webpack'owi czy gulp'owi nie
ważne jak sobie to skonfigurujesz, możesz w dowolny sposób. Możesz powiedzieć na przykład
nasłuchuj na zmiany w pliku resources sass main,
jak cokolwiek tutaj się zmieni to wyrzucaj plik public css main css mniejwięcej
coś takiego zrobimy później. Dlatego ta struktura jest tutaj dowolna i można
ją układać jak tylko nam się podoba. Zatem przejdźmy jeszcze do views
i mamy ten nasz Welcome blade ja będę chciał ten plik usunąć
i teraz będziemy
chcieli przejść do katalogu HTML, skopiować
sobie index.html który tutaj jest. Wrzucimy
go do views i zmienimy
jeszcze jego nazwę czyli tutaj możemy na niego kliknąć. Wybierzemy Rename
i zmienimy nazwę na index następnie
blade php okej dobra i teoretycznie tyle wystarczy.
Podmienimy sobie tutaj jeszcze ścieżkę na taką, to
będzie oznaczało z głównej naszej domeny wczytuj ten plik, a główna
nasza domena będzie kierować na katalog public więc tutaj będzie CSS na razie tylko
tyle i zobaczymy. Nie będzie nam to niestety działać.
Jak widzisz powitał nas taki piękny ekran zawsze laravel
w wersji deweloperskiej czyli nie na produkcji ale lokalnie będzie ci pokazywał
takie ładne szczegółowe ekrany z błędami. Mówi nam że View welcome
not found bo usunęliśmy plik welcome, zamieniliśmy to na indeks blade.
No właśnie teraz musimy przejść i to jest ostatnia rzecz którą zrobimy
ale tylko na chwilę, do katalogu routes, pamiętasz jak mówiłem
ci jak wygląda struktura tych wszystkich katalogów. W routes mamy nasze ścieżki do
web i tutaj zobaczymy że zwracany był View welcome, zamieńmy to na
index. Zapiszmy, odświeżam tutaj i nagle okaże
że nasz blog już się wczytuje, łącznie z naszym kodem CSS i tak dalej. Natomiast
będziemy chcieli w kolejnej lekcji zamienić to na plik layout'u który
później będziemy mogli rozszerzać, ale jak widzisz i ta lekcja mam nadzieję ci pokazała,
to ty rządzisz w katalogu resources. Jeżeli nie chcesz zmieniać konfiguracji
to prostu zostaw tutaj katalog views. Wewnątrz już będziesz
mógł robić co chcesz i zostaw katalog lang. Poza tym możesz tutaj mieć dowolne
rzeczy i pamiętaj one nigdy nie będą publicznie dostępne przez odwiedzających twoją
witrynę tylko ten katalog jest publiczny.