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 jeszcze króciutko o takiej jednej praktyce
którą ja stosuję i chcę się z tobą nią podzielić, mianowicie jeśli
przejdziemy do master, to zauważ, że podlinkowaliśmy tutaj skrypty ten sposób i
nie ma w tym absolutnie nic złego. Jeżeli te skrypty tutaj będą
w jakiś sposób globalne, one na każdej stronie się wczytają i będą na każdej
stronie dostępne. Natomiast czasami jest tak, że masz jakieś skrypty specyficzne dla danej
podstrony i w zasadzie nie ma potrzeby ładować ich na stronie głównej, jeżeli
nie są tam wykorzystywane i teraz zrobimy sobie jedną rzecz, która może w tym
konkretnym przypadku, nie jest idealna, ale pokażę ci co mam na myśli. Mianowicie
ten skrypt stąd usunę, a stworzymy sobie tutaj sekcje, czyli
zrobimy po prostu yield w tej sekcji, którą nazwiemy na przykład footer_scripts. Ja
robię to często dokładnie w taki sposób i teraz jeżeli w żadnym szablonie
nie skorzystamy section footer script, nic się nie wydarzy. Natomiast
jeżeli mamy na przykład podsunę create i tego ci jeszcze
nie pokazywałem. Zauważ korzystam z section content, nie pokazywałem ci że sekcji
może być wiele, chociaż można się było domyślić skoro mamy section title section
content nie ma żadnego powodu żeby to było problemem
możemy utworzyć section footer scripts,
domknąć tą sekcje i tutaj
wstawić dowolny kod który się pojawić tam gdzie zrobiliśmy yield, więc możemy to wstawić
tutaj. W naszym przypadku kłopotliwe jest to, że mamy dwie takie templatki,
więc trzeba to wstawić dwa miejsca. Niemniej jednak widzisz samą ideę, jeżeli
teraz nasza strona się odświeży, jesteśmy na stronie głównej i podejrzeli
byśmy źródło to na samym dole zobaczymy że nie ma tutaj tego skryptu który był
tutaj wcześniej, ale jeżeli przejdziemy sobie do create i raz podejrzymy
źródło to już tutaj się ten skrypt znajdzie i wszystko będzie działać poprawnie,
skoro ten edytor tak się wczytał i powiem ci, że dla mnie to szczególnie przydatne wtedy,
jeżeli chcę tutaj podawać jakieś dane. Czasami robię sobie
coś takiego, powiedzmy,
że w tym przypadku byłoby to larablogger. Robię coś takiego var LaraBlogger
równa się window.LaraBlogger or
pusty obiekt i
to pozwala mi na to, aby stworzyć sobie taki globalny
obiekt gdzie mogę coś dodać. Powiedzmy, że bylibyśmy na podstronie wpisu, tu jesteśmy
akurat na edit, ale powiedzmy, że byłaby to podstrona wpisu. To mogę dodać sobie coś
takiego jak na przykład post data i nie wiem tutaj
powiedzmy byśmy zrobili post to json, cokolwiek.
Albo dodalibyśmy sobie tutaj na przykład id równa się post_id
chodzi generalnie o to, że jeżeli tutaj coś takiego
byśmy przygotowali, to zostanie to wstrzyknięte do footer_script,
czyli w master pojawi się w tym miejscu i pod spodem możemy mieć na
przykład podlinkowany już normalne skrypty, które potrzebują mieć dostęp do LaraBlogger PostData,
coś w tym stylu. Ja bardzo często wykorzystuje i wtedy ten konkretny skrypt
globalny, on byłyby z powrotem w master, a tutaj definiował bym definiował tylko coś co jest specyficzne
dla danej podstrony i wiem, że gdzieś tamtych skryptach, które są master ktoś
na to nasłuchuje i oczekuje, że coś takiego będzie mu podane właśnie
poprzez jakieś globalny obiekt, więc ja bym to tak wykorzystał, ale w naszym przykładzie
on jest prostszy. Nie wymaga żadnych dodatkowych danych, zostawimy to po
prostu w ten sposób i plus jest taki, że faktycznie na tej stronie głównej nie wczytujemy
skryptu, który tak naprawdę jest potrzebny wyłącznie w create i edit, a więc tylko
dla admina i nie ma powodu żeby każdy użytkownik który odwiedzi naszą stronę
musiał taki skrypt u siebie pobrać. Poza tym tyle jeżeli
chodzi o pracę z frontend'em, w zależności od tego jaki workflow będziesz potrzebował,
na pewno sobie go dostosujesz, a im lepiej znasz webpack'a, tym więcej będziesz mógł
również tutaj zrobić, co nie zmienia faktu, że jeżeli przeczytasz dokumentację laravel mix
to okaże się, że bardzo wiele trudnych koncepcji z webpack'a można za
pomocą prostego zapisu w pliku webpack mix js uzyskać.