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
W tej lekcji pokażę ci jak w automatyczny sposób uzupełniać sobie tutaj slug,
Natomiast w poprzedniej lekcji pokazałem jak dodać taką kolumnę nie usuwając aktualnych
danych. No i jeżeli do tych danych chcielibyśmy teraz właśnie taki slug. To
musielibyśmy sobie napisać jakąś funkcję którą można później w artisan tinker uruchomić
i taką prostą nawet, która wyszuka na wszystkich wpisów, czyli na przykład posts
all. To nam zwraca kolekcję na kolekcję jest taka metoda jak each i możemy
dla każdej wygenerować slug i zapisać. Nie będziemy jednak tego robić bo nie jesteśmy
na produkcji nie musimy w ten sposób tutaj się posługiwać tym. Możemy
od jak zrobić sobie nowy ceed bazy danych, czyli wykonamy czyste
migracje i wtedy ten slug nam się wygeneruje po tym co za
moment wykonamy. Natomiast pamiętaj, że jeżeli byś to robił na produkcji i chciałbyś zatrzymać
te dane, to prostu musisz jakąś funkcję dopisać, która ci te slugi pouzupełnia.
Okej, czyli teraz będziemy chcieli zrobić rzecz następującą. Po
pierwsze moglibyśmy przejść do factories i w miejscu, w którym robimy sobie post
to moglibyśmy od razu dodać tutaj slug i go uzupełniać i ten
slug można wygenerować za pomocą helpera, który nam laravel udostępnia czyli
str slug jest taki. Musielibyśmy go zaimportować u góry.
Zaraz to zrobimy i podalibyśmy tutaj ten tytuł, czyli to można zapisać do zmiennej,
tutaj podstawić tą zmienną i później tutaj zrobić slug, ale to
by działało wyłącznie wtedy kiedy seedujemy naszą bazę danych natomiast my chcemy zawsze kiedy
będzie tworzony nowy post i będzie miał podany tytuł który jest wymagany, aby
slug był tworzony automatycznie i zrobimy to za pomocą tak zwanego mutator'a
czyli mutator, okej. Czyli będziemy mogli przejść do app
naszego posta i tutaj zrobimy sobie rzecz następującą. Utworzymy
funkcję publiczną, którą nazwiemy
set title attribute. Ta nazwa nie jest przypadkowa
chodzi o to że za każdym kiedy na modelu będzie ustawiony title
to będziemy chcieli tam funkcję wykonać je na początku zawsze będzie set, potem
nazwa pola, które jest na tym obiekcie i później attribute. Zawsze to będziesz nazywał
ten sposób i tutaj zostanie przekazana jakaś wartość, czyli mówimy że w momencie
kiedy będzie tworzony nasz obiekt i będzie ustawiony title, to
wartość tego tytułu zostanie przekazana do value i możemy coś nią zrobić. Możemy
się wtedy odwołać do this attribute. Jest to taka wewnętrzna tablica
z atrybutami i title oczywiście chcemy ustawić na taki jaki został przekazany.
Natomiast oprócz tego możemy również ustawić slug. No
właśnie i teraz ten slug będziemy chcieli dynamicznie utworzyć. Laravel nam oferuje taki
helper jak string slug i tutaj możemy podać value, natomiast
musimy sobie go zaimportować tutaj nie edytor go nie wyłapał jest to pop illuminate. Następnie
support i następnie str i
teraz skąd wiem? Otóż, jeżeli przejdziemy na stronę dokumentacji
laravel'a i tutaj mamy coś takiego jak Helpers, to możesz zobaczyć wszystkie
które dostępne i na przykład to jest string slug. Jeżeli klikniemy to widzimy
że musimy to zaimportować w taki oto sposób. Okej, czyli taki slug zostanie automatycznie
dla nas utworzony. Nie musiałem pisać własnej logiki, która by nam ten tytuł zamieniła
na slug. Przejdźmy zatem do terminala i wpiszemy sobie php artisan
migrate fresh i następnie
zrobimy php artisan db seed, czyli
od nowa się nasze wpisy utworzą i tym razem one już powinny zawierać w sobie
slug, więc zobaczmy. To zgadza się z każdego tytułu został
taki slug utworzony. I jak zatem widzisz w ten sposób działają takie
mutatory, czyli możemy powiedzieć że kiedy title będzie ustawiany, wtedy utwórz
również slug. Gdybyśmy gdzieś mieli dostęp już do instancji
naszego posta, czyli wyobraź sobie że mamy post, to wtedy ktoś gdybyśmy powiedzieli post title
i zmienili go na jakąś wartość, to automatycznie zmieni się również slug. Mutator'y
również pozwalają nam tutaj napisać get title attribute i stworzyć
swego rodzaju wyliczony atrybut, co będziemy robić jednej kolejnych lekcji.