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
Abyśmy mogli dalej wygodnie pracować nie możemy za każdym razem dodawać
tutaj ręcznie jakiegoś wpisu, bo jest to zbyt czasochłonne. Poza tym kiedy będziemy dodawać
dodatkowe migracje może być tak że będziemy chcieli wyczyścić wszystko co
mamy tutaj w bazie danych, dlatego pokażę ci w tej i w kolejnej lekcji w jaki
sposób możemy skorzystać z tak zwanego Factory oraz Seeder, czyli jak
możemy stworzyć sztuczne dane i następnie wstawić je do bazy danych i
tak naprawdę będziemy to robić później jednym poleceniem. Zatem przejdziemy sobie
do naszego kodu i co ważne znowu jesteśmy tutaj w wirtualnej maszynie. Będę
chciał wpisać php artisan make factory. Również
możesz sobie zobaczyć pomoc dla tej komendy i nazwiemy ją PostFactory.
Jak widzisz została utworzona i pojawi ona nam się tutaj w database
factories, czyli coraz lepiej zaczynasz poznawać te katalogi które na początku mogły przytłaczać. Migracje
już wiemy po co są, factories tutaj nam się pojawiły. Mamy
tutaj taki oto kod i on wykorzystuje bibliotekę faker,
która jest dostępna dla PHP. Możesz sobie wyguglować faker, wtedy zobaczysz wszystkie
pola jakie są dla nas dostępne. Generalnie za pomocą tego faker'a będziemy chcieli
tutaj zwrócić taką tablicę, taki obiekt, można powiedzieć tablicę asocjacyjną w
której będą te pola, które nam są potrzebne aby utworzyć wpis.
Mamy dwa rodzaje wpisów, więc najpierw zajmiemy się tym tekstowym. Będziemy
chcieli tutaj zwrócić na pewno title i możemy się odwołać do faker'a i ma on
taką metodę jak sentence. Ja widzisz jest to tutaj tutaj fajnie podpowiadane
i możemy powiedzieć że chcemy zdanie które będzie miał pięć słów. Następnie
potrzebujemy content, znowu faker
i możemy użyć paragraf i znowu
niech on ma pięć zdań. Następnie
potrzebujemy datę. Tutaj skorzystamy z funkcji now, która jest dostępna Dzięki
laravel'owi. U nas zwraca nam instancje Carbon Date i następnie
będziemy potrzebowali tutaj type i będzie to w tym przypadku text, okej.
I teraz co to oznacza jeżeli mamy taką fabrykę. Jeżeli tutaj sobie przejdziemy i znowu
przejdziemy do tinkera, to będziemy mogli napisać factory
i następnie będziemy musieli podać, no właśnie, coś czym zapomniałem
wyżej, czyli tutaj mamy model class to musimy podać app post class. Taki
zapis class zwróci tutaj string, właśnie jako cały
namespace, więc to zapomniałem, to musimy tutaj podać. Jeszcze raz uruchomimy
tinkera i teraz jeżeli skorzystamy z factory i właśnie podamy app, następnie
post class lub możemy podać ręcznie
cały string i powiemy make to zobacz zostanie
dla nas zwrócone taki fejkowy post, właśnie według tego co tutaj podaliśmy i teraz
on nigdzie nie jest zapisany ale moglibyśmy go zapisać bazie danych bez problemu,
bo moglibyśmy tutaj zrobić jeszcze save i został utworzony i zapisany
w bazie danych, więc to będziemy chcieli zautomatyzować ale kolejnej lekcji. Natomiast
mamy jeszcze jedną sprawę tutaj do załatwienia, dlatego że mamy również wpisy
o innym typie, więc chciałbym tutaj pokazać ci jak można rozwiązać. Otóż możemy
wszystko, co tutaj mieliśmy skopiować i tutaj jako drugi parametr podać image i
jest to zadanie tak zwanego state. To oznacza że wszystko co podamy
tutaj nadpisze nam to co było tutaj oraz doda jakieś nowe rzeczy. W przypadku
content wiemy nie będziemy mieli żadnej wartości, więc możemy podać null, bo kiedy jest zdjęcie
to nie ma tekstu. Jeżeli chodzi o date to nie będziemy musieli
tego podawać, jeżeli chodzi o title, on będzie dziedziczony jakby z góry i taki podamy
sobie jako photo albo w zasadzie tak to
będzie photo a potrzebujemy jeszcze image i tutaj
możemy skorzystać z faker i mam coś takiego jak imageUrl,
gdzie możemy podać wielkość. Będzie to powiedzmy w naszym przypadku 1200
na 800. Zobaczysz, że to będzie jej URL zewnętrznego serwisu i te
obrazki będą randomowo dla nas wczytywane. Okej, jeżeli utworzymy coś takiego przejdźmy
raz jeszcze do artisan tinker. Wtedy będziemy mogli powiedzieć factory
znowu podać app post i następnie będziemy mogli
powiedzieć state, dodać tutaj image, czyli
tak dokładnie to co podaliśmy w tym miejscu i dopiero teraz możemy powiedzieć make, okej. Pojawił
się błąd to jeszcze wynika z tego że tutaj powinniśmy napisać state, okej.
Raz jeszcze spróbujmy i jak
widzisz mamy typ wpisu, który będzie dla nas dostępny jako photo, czyli photo
dostało tutaj obrazek, że jeśli podejrzymy w przeglądarce, jak widzisz tak będzie wyglądał.
No w zasadzie możemy sobie go zapisać w bazie danych, ale to zrobimy użyciem sidera w
lekcji kolejnej.