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
Jest jeszcze jedna rzecz, która powstrzymuje nas przed pójściem dalej i jest to
niesformatowana data. Tutaj mamy cały na sztywno wstawiono datę, chciałbym
żebyśmy i tym zajęli, a zobaczysz, że będzie to łatwe, ale i pokażę
ci jak będziesz mógł w swoich projektach wydajniej z datą. Najważniejsze
jest to, że laravel korzysta taki biblioteki, która nazywa Carbon i warto
sobie tą stronę zapamiętali, a tutaj bardzo często sięgam, na przykład kiedy skorzystaliśmy
z metody naucz, w zasadzie z funkcji now. Ona zwraca nam instancję klasy
carbon i to oznacza tylko tyle, że mamy zwrócony obiekt, który
pozwala nam korzystać z wielu różnych metod, na przykład możemy do daty dodać dwie
minuty, odjąć dwie minuty, dodać rok, odjąć rok. To się bardzo przydaje kiedy
na przykład chcemy ustawić ciasteczko, możemy wtedy na przykład na miesiąc, możemy wtedy napisać now,
inne auta funkcja zwróci nam taką datę, robimy sobie strzałeczkę,
taką jak tutaj i pomówimy na przykład dodaj jeden miesiąc i mamy
już nową instancję. Miesiąc do przodu, możemy to wykorzystać przy zapisywaniu, na przykład
ciasteczka. Natomiast również Carbon pozwala nam w fajny sposób sformatować datę
tak jak tutaj widzimy na przykład One Day Echo. Zaraz ci pokażę jak możemy
to zrobić. Natomiast najpierw przyjdziemy sobie do terminala, tutaj
w wirtualnej maszynie, wpiszemy php artisan tinker, bo chcę ci
pokazać, gdzie laravel korzysta właśnie z tych dat, jeżeli
sobie zrobimy app post. Pamiętaj, że tutaj musimy po pełnym namespace i będziemy
chcieli sobie pobrać pierwszy wpis, to zauważ, że mamy tutaj datę i teraz
jeżeli byśmy się do tej daty chcieli odwołać, wygląda jak zwykły string. Mam na
myśli data created at, data updated at, ale to nie jest zwykły string. Jeżeli
zrobimy created app zobacz, zostanie dla nas zwrócona
instancja carbon, czyli tutaj wszystko jest dostępne. Natomiast jeżeli zrobimy
to samo na date, to okaże się że jest to zwykły string. Dlaczego? Dlatego,
że created at oraz updated att z migracji może nie pamiętasz, to
ci szybciutko przypomnę. Było to coś takiego jak timestamps,
to właśnie ten zapis dodał nam te dwa pola. One automatycznie przez laravel
są uważane jako daty i są konwertowane do instancji klasy Carbon. Natomiast
nasza data, którą dodaliśmy, nie jest, dlatego będę chciał również teraz ustawić,
aby i ona była tak konwertowana. Na moment opuścimy tinker, przejdziemy
sobie do post i będziemy chcieli to dać coś takiego
jak protected dates i będzie
to tablica, której musimy podać pola, które mają być cast'owane na instancje
klasy Carbon, więc napiszemy tutaj date. Okej, jeżeli to zapisze
i raz uruchomimy tinkera. Raz jeszcze sobie pobierzemy ten
pierwszy wpis i jego date. Zauważ, że jest to już instancja klasy Carbon
i teraz po co nam to potrzebne. Otóż po to, że jeżeli przejdziemy sobie do post i
mieliśmy tutaj coś takiego jak one day ago, to od teraz jeżeli tutaj skorzystamy
z coast day, czyli z naszej daty
to jest to już instancja Carbon, a nie string, a na tej instancji jest metoda
która nam się przyda nazywa się for humans i ona
nam zwrócić właśnie coś takiego jak one day ago i tak dalej, więc będę chciał
to teraz podstawić wszędzie gdzie jest nam to potrzebne tutaj i tutaj i jeszcze musimy
to zrobić w pojedynczym wpisie, okej
i również tutaj. Teraz po odświeżeniu naszej strony, zobacz
mamy ten minutes ago na przykład, wtedy wygenerowaliśmy sobie właśnie
poprzez BBC te wszystkie wpisy i to będzie się fajnie aktualizowało,
więc zapamiętaj, że z datami Carbon możesz pracować, one się często w laraverze
pojawiają. Mamy również wspomnianą wcześniej funkcję now,
która będzie nam to wszystko wracać nic
nie stoi również na przeszkodzie, co ja robię często, żeby tutaj wpisać use carbon carbon
i wtedy możemy w dowolnym miejscu korzystać
z carbon'a, tak jak jest napisane na stronie dokumentacji. Różne metody tam są dostępne,
więc warto o tym pamiętać, że Carbon tutaj jest w laraverze
dostępny.