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
Routine w naszym blogu działa już bardzo fajnie, możemy przychodzić sobie do wpisów, natomiast
jest jedna rzecz którą chciałbym zmienić, mianowicie nie chcę tutaj wyświetlać id, ale tak
zwane slug i slug to będzie tytuł to będzie tytuł zamieniony w odpowiedni sposób, czyli na przykład
spacje będą zamienione na pauzy, żeby to zrobić musimy
dodać sobie do naszej bazy danych nową kolumnę mamy title, mamy content. Pomiędzy
nimi Chciałbym dodać kolumnę slug. Teraz jak możemy to zrobić. Póki
pracujemy w tym trybie deweloperskim czyli tak jak teraz, póki nasza aplikacja jeszcze nie jest
uruchomiona na produkcji, ja bym to zrobił tak że przeszedłbym sobie do migracji którą
mamy i tu gdzie mieliśmy title to dodałbym jeszcze string slug. Natomiast
jeżeli teraz uruchomimy polecenie php artisan migrate to
nic się nie wydarzy dlatego że artisan sprawdzi sobie że w tabeli migration, zobaczmy,
wywołał sobie` już create posts table, więc ten rekord musiałbyś
usunąć i wpisać php artisan migrate, wtedy od nowa
byłoby to dodane, ale co ważne musisz o tym pamiętać, wszystkie dane zostaną
wtedy wyczyszczone. Natomiast możemy zrobić inaczej możemy tutaj sobie dodać ten
slug i wpisać PHP artisan migrate fresh, czyli, że chcemy
wyczyścić wszystkie dane i od nowa zrobić migracje. Wtedy on zostanie dodany,
czyli tak ja bym zrobił. Na tym etapie na którym jesteśmy, ale że chciałbym
ci pokazać jak się pracuje kiedy już mamy aplikacje
na produkcji to specjalnie korzystaliśmy z i teraz chcemy korzystać ze
slack'a, specjalnie zrobiłem to ten, czyli pokażę ci sposób w jaki możesz
dodać nową kolumnę do bazy danych. Jednocześnie nie tracąc danych czyli
wyobraźmy że nasza aplikacja jest już na produkcji. Mamy tam dane i potrzebujemy
dodać nową kolumnę. Do tego celu wykorzystamy polecenie PHP
artisan make migration
i teraz jak migracje nazywaliśmy create posts table,
to tą nazwiemy inaczej. Jest to konwencja którą ja przyjąłem nie musisz
robić tego identycznie, ale dla mnie ona działa dobrze, czyli napiszę add
slug field albo na przykład kolumn możesz napisać to posts table
i tutaj laravel nie będzie dokładnie wiedział o co chodzi, więc musimy mu jeszcze wskazać że
chodzi o tabelę w danych posts. Zaraz zobaczysz w czym
rzecz. Otóż jeżeli tutaj robiliśmy create post table, to
mieliśmy Schema create i laravel wyłapał, że chodzi o tabelę posts. Jeżeli
teraz mamy add slug. Ja podałem że ma to tabela posts więc ona tutaj
jest dodana. Różnica jest taka, że tutaj jest Schema table, a tutaj mieliśmy Schema create,
czyli ta migracja nie będzie już tworzyć nowej, ale będzie
nam pozwalała dodać coś do istniejącej, dlatego dodam tutaj table
strings slug i chcę wstawić to pole nie na końcu naszych
kolumn, ale chcę żeby ono było pomiędzy title, a content czyli napiszemy sobie tutaj
coś takiego jak after title. Znajdziesz to również na stronie dokumentacji
laravel'a teraz, jeżeli sobie wykonamy php artisan migrate, to
zobaczysz nowa migracja się wykonała i teraz jeżeli sobie tutaj odświeżymy
to zobacz, że slug został dodany. Nie zdefiniowaliśmy, że on może być nullable,
więc on jest wymagane. Jeżeli teraz byśmy chcieli dodać nowy jakiś wpis to
ten slug tutaj już się musi znaleźć. W kolejnej lekcji natomiast sprawimy
żeby automatycznie z tych tytułów były tworzone slugi i później będziemy mogli je
przekazywać już do adresu URL.