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
Okazuje się, że póki co żaden z naszych użytkowników nie jest adminem, dlatego
na czas development'u nie możemy na razie testować czy coś
może admin zrobić czy nie, dlatego wygeneruje sobie kilku testowych użytkowników
za pomocą technik które już dobrze znasz, więc pójdziemy sobie do database
i tutaj od początku jak zainstalowaliśmy laravel mamy coś takiego jak UserFactory. Myśmy
tworzyli własną PostFactory, ale user już tutaj był i na podstawie tej
fabryki będę chciał utworzyć sobie testowych użytkowników, więc
to wszystko co tutaj jest jest w porządku, zostanie za pomocą takiej fabryki
utworzone użytkownik który jak widzisz będzie zweryfikowany będzie
miał tutaj data i będzie miał hasło zapisane tutaj crypt'em które
będzie miało wartość hasło czyli password. Będzie można je wpisać, natomiast chciałbym
żeby jeden z użytkowników to by admin dlatego podobnie jak w PostFactory dodawaliśmy factory state
tutaj image to będę chciał dodać również tutaj taki state i
nazwę go admin, czyli będzie to state. Pamiętasz być
może widziałeś przed sekundą że dodajemy to jako drugi parametr i zwracamy tylko
to co ma być nadpisane w tym co było tutaj u góry. Zatem
name ja będę chciał ustawić na swoje dane i zawsze to pierwszy użytkownik, ale
jak to zrobić zobaczysz za moment, mail również ustawie swój, będzie mi się łatwiej
po prostu logować, tego nie musimy nadpisywać
jedynie chciałbym nadpisać hasło, ale że nie wiem jaki ciąg bcrypt sobie
przepisać to skorzystamy z globalnej funkcji bcrypt i podam test. Moje
hasło to będzie test, zauważ, że my wymagaliśmy żeby hasło miał 8 znaków, ale to
było na poziomie walidacji w kontrolerze. Natomiast ogólnie możemy zapisać
jakie chcemy w bazie, więc tworząc użytkownika ja będę miał hasło test
będzie mi dużo łatwiej wpisać i teraz musimy sobie utworzyć takiego użytkownika
jednego czy kilku, oni nam będą potrzebni również w dalszej części tego kursu, dlatego
przejdziemy do terminala, do maszyny wirtualnej i stworzymy sobie seeder
tak jak wcześniej mieliśmy tutaj PostTableSeeder, to wpiszmy php artisan make
seeder i nazwiemy go i UsersTableSeeder. Powinno
nam się to bez problemu utworzyć i tutaj się pojawić. Dokładnie tak też się stało
dlatego tutaj będziemy chcieli skorzystać z factory i zobacz jak to wcześniej
właśnie tak to wyglądało więc teraz tutaj zrobimy factory. Odwołamy
się do App, następnie do User Class
tutaj ustawie sobie state admin, bo chcę utworzyć admina
i zrobię create będę miał jednego takiego admina i teraz zrobię rzecz
podobną ale już bez tego state i powiem od razu, że chcę mieć jeszcze
trzech innych użytkowników i w ten sposób to zrobimy. Teraz
nie wiem czy pamiętasz ale możemy wpisać php artisan db:seed
i podać tutaj klasę, ale również możemy ją od razu przypisać
do database seeder w tym miejscu, jeżeli to zrobimy UsersTableSeeder,
to po wykonaniu po prostu db:seed to
wszystko nam doda. Ja teraz chciał będę w ogóle wyczyścić wszystkie dane jakie mamy bo pewnie
zauważyłeś że mamy użytkowników w bazie którzy mają id 3, 5
i tak dalej a ja chcę żeby się od 1 zaczynał, po to żeby nasz admin
mógł działać. Dlatego zrobimy najpierw php artisan migrate fresh.
Ale uprzedzam, że to wyczyści wszystko co jest bazie danych. Natomiast dzięki seederom
zaraz to uzupełnimy i teraz wpiszemy php artisan db:seed. To
nam uzupełni wpisy i użytkowników. Okej, możemy zaglądnąć do naszej bazy danych
i przejdziemy do users. Jak widzisz, mamy admin'a który
ma właśnie id 1 to będę ja i jeszcze trzech jakiś przypadkowy
użytkowników. Podobnie jest tutaj z wpisami, mamy jakieś wpisy więc
jest wszystko w porządku, więc ja teraz się po prostu spróbuję zalogować na samego
siebie. Tutaj się wylogowaliśmy z kogoś kto był poprzednio
z jakiejś sesji i teraz spróbujemy tymi danymi które przed momentem sobie
utworzyłem, hasło test, okej, udało
się zalogować i ja jestem adminem, więc powinno nam tutaj wyświetlać Create, jak
widzisz, jest. Będziemy mogli wpisy wyświetlać, edytować i to też potwierdza,
że Gate który stworzyliśmy, działa poprawnie.