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
No i po kilku godzinach dotarliśmy do końca tego kursu. Mam nadzieję, że wiele
z niego wyniosłeś i że teraz odważysz już budować swoje własne aplikacje webowe
z użyciem framework'a laravel. Jak się przekonałaś mam nadzieję, możesz
tworzyć aplikacje skupiając się na logice biznesowej, a nie myśląc
cały czas o tym w jaki sposób na przykład wysłać formularz i przechwycić
dane, które są tam wysyłane. Jak jest zwalidować, jak przekierować z powrotem na
stronę i wyświetlić błędy. Wszystkie te rzeczy oferuje nam framework laravel i żebyśmy
z nich po prostu korzystali i skupili wyłącznie na pisaniu własnej logiki
i chociaż w tym kursie pokazałem zdecydowaną większość rzeczy, które są związane z
levelem, wciąż pozostają jeszcze bardziej zaawansowane tematy, które zasługują
na osobny materiał, które również są przydatne w codziennej pracy i o
których warto wiedzieć, dlatego chciałbym tylko krótko wspomnieć o rzeczach, o których nie powiedziałem
tym kursie. Przede wszystkim nie korzystaliśmy z eventów chociaż
oni wspominałem. Eventy pozwalają ci przypisać jakąś
własną klasę gdzie będziesz miał logikę obsługującą jakieś zdarzenie, czyli
możemy wyemitować zdarzenie na przykład pod tytułem użytkownik został zarejestrowany
i w zupełnie innym miejscu naszej aplikacji wysłać do niego email
powitalny, My ten email wysyłaliśmy w metodzie registered, ale można
byłoby to zrobić za pomocą eventów. Eventy generuje się z użyciem artisan i
trzeba jeszcze je odpowiednio zarejestrować. Oprócz wysyłania maili
nie mówiliśmy też zbyt wiele o notifications, a jest to sposób powiadomienia
użytkowników o jakichś akcjach. Na przykład o tym, że użytkownik został zarejestrowany z
tym, że notification różni się od emaila tym, że jest
tutaj wyższa warstwa abstrakcji i możemy wysłać takie powiadomienie przez różne kanały. Jednym z tych
kanałów może być email. Kolejną przydatną rzeczą są kolejki, które
można skonfigurować z użyciem na przykład bazy danych redis i one
pozwalają nam odłożyć jakieś zadania na później i wykonać je w tle. Na
przykład kiedy zarejestruję się użytkownik wysyłaliśmy maila i być może zauważyłeś
troszeczkę dłużej musieliśmy czekać, aż strona się przeładuje. Właśnie przez to, że był
wysyłany razem w tym procesie, który wykonaliśmy naszym zapytaniem, tam
był wysłany email. Natomiast można było taki email za kolejkować, a więc
jeżeli ktoś się zarejestruje na naszej stronie, od razu wyskoczy mu cześć
zostałeś zarejestrowany, a email zostanie dodany do kolejki, z tym, że osobny
proces musi być uruchomiony w tle na naszym serwerze i on tą kolejkę
obsługuje. Widzisz, że coś w kolejce się pojawiło jest to wysłanie maila i on tego maila
wysyła, więc jest to koncepcja trochę bardziej zaawansowana, ale bardzo, bardzo przydatna.
Na kolejki można dodawać jeszcze inne rzeczy. Są to na przykład job'y
i znajdziemy je tutaj również w dokumentacji.
Konkretnie są napisane na stronie właśnie kolejek i job to
znowu jest klasa, która wykonuje jakąś pracę. Tą pracą może być na przykład
synchronizacja bazy danych z jakimś zewnętrznym serwisem, cokolwiek.
Powiedzmy, że raz na dobę chciałbyś w nocy uruchamiać jakieś zadanie, więc
możesz z użyciem chrone'a oraz laravel schedule ustawić,
że dany job ma być wykonywane na przykład o 1:00 w nocy. W tym job'ie
definiujesz całą logikę jaka ma się wykonać i dodatkowo taki job może
być również zakolejkowany, aby był wykonywany gdzieś w tle. Z koncepcji
bardziej zaawansowanych mamy tutaj również coś takiego jak Service Providers,
które pozwalają w nam łatwy rejestrować jakieś własne serwisy i korzystać
z nich później w formie tak zwanych fasad. Jak zatem widzisz, jest jeszcze
kilka koncepcji, które zasługują zdecydowanie na osobny materiał. Są trochę bardziej zaawansowane,
ale ich znajomość dopełnia to czego już się nauczyłeś. Dzięki
nim można budować jeszcze lepsze aplikacje. Oczywiście wszystko zależy od twoich
wymagań i na ile skomplikowane projekty będziesz realizował, na pewno jedno
do czego mogę cię zachęcić to przeczytanie całej dokumentacji laravel'a, nawet
jeżeli nie wszystko zrozumiesz to znajdziesz tam na pewno wiele ciekawostek, o których jeszcze
nie wiesz i na koniec skieruje cię jeszcze na stronę na GitHub'ie, która nazywa
awesome-laravel. Tutaj znajdziesz pogrupowane różne
zasoby związane właśnie z tym frameworkiem. Mogą to być popularne
dodatki. Mogą to być narzędzia deweloperskie i tak dalej. Polecam
ci również rzucić na to okiem, aczkolwiek powiem szczerze, że najlepszym kiedy
czegoś poszukujesz jest pisanie z tego w Google z dopiskiem laravel, na
pewno znajdziesz to, czego szukasz. To zatem tym tyle z mojej strony. Bardzo serdecznie
dziękuję za czas poświęcony na obejrzenie tego kursu. Mam nadzieję, że udało mi się przekazać
ci sporo wiedzy na temat tego framework'a i że widzisz jego potencjał. Ja
przyznam szczerze, że w tym narzędziu jestem zakochany, bo naprawdę bardzo
przyjemnie się z nim pracuje i wszystko czego potrzebuję tym framework'u znalazłem. Teraz
jeszcze dzięki i do usłyszenia w kolejnych materiałach na eduweb.pl