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
Będziemy powoli dążyć do tego żeby nasz blog stawał się dynamiczny a więc aby
ten kod HTML, który tutaj teraz mamy na sztywno miał dynamiczne
dane aby one się zmieniały dlatego będę chciał ci pokazać najpierw na prostszych przykładach, a
później będziemy to rozbudowywać, w jaki sposób możemy przekazywać dane
do widoków w laravel, więc jeżeli przejdziemy sobie do web i wiemy
posty wyświetlamy dokładnie w tej funkcji to będę chciał tutaj wstawić
taką oto tablice posts. Zauważ że jest to tablica asocjacyjna mamy
tutaj właśnie takie dwie tablice w których mamy
jakieś dane na temat wpisów. Teraz będę chciał z tych danych móc w widoku
skorzystać. Natomiast żeby to zrobić
jest kilka możliwości. Pokażę ci jedną z nich, otóż
jako drugi parametr do widoku możemy przekazać również taką tablicę, gdzie napiszemy
post i co ma na to kierować więc chcemy żeby
tutaj było to posts, ok i to
oznacza tylko tyle, że w momencie kiedy ten widok będzie wczytywany to w nim pojawi
się zmienna dolar post, jeżeli byśmy to nazwali w inny sposób na przykład articles
to mielibyśmy zmienną dolar articles, więc to jest
istotne. Tutaj ta zbieżność nie ma żadnego znaczenia. Jeżeli zatem
przejdziemy do posts to będziemy tutaj mogli
się do tego do tej zmiennej odwołać i teraz
co będziemy chcieli zrobić. Będziemy chcieli wykonać pętla for each
i robimy to za pomocą takiej oto dyrektywy, dolar
posts, to co zostanie tutaj przekazane as post i będziemy
chcieli gdzieś to for each zakończyć. My będziemy chcieli to zakończyć na samym końcu
bo mamy dwa rodzaje wpisów. Jest to image lub jest to text
dlatego będziemy chcieli obydwa obiąć i zaraz zrobimy jeszcze sobie
odpowiedniego IFAif'a, tu musimy wpisać and for each. Wszystko co
mieliśmy pod spodem możemy już spokojnie usunąć, okej. Teraz
będziemy chcieli mu tutaj wyświetlać dane tych wpisów. Natomiast jeżeli będziemy to traktować jako
tablice to musielibyśmy się na przykład tytule który jest tutaj odwołać
jak wiesz do post następnie title. A
ja chcę się do tego odwołać w ten sposób dlatego musimy tutaj
scastować sobie to na obiekty to tylko chwilowo dlatego że później to będą dla nas zwrócone
obiekty i dlatego chcę ci to pokazać więc jeżeli tutaj zrobimy coś takiego. To
te tablice zostaną zamienione na standardowy obiekt z takiej stdclass
i wtedy będziemy mogli tutaj odwoływać właśnie w taki oto sposób, więc
możemy wyświetlić sobie tutaj post title powiedzmy i zobaczymy,
co już na naszej wydarzy. Jak widzimy jakiś wpis tutaj się pojawił
i jest sczytywany dokładnie w tej tablicy która tutaj była ale
że mamy różne typy na przykład tym text to chciałbym tutaj zrobić jeszcze dodatkowe if. Przy
okazji poznasz jak się pisze if'y, bardzo proste. Jeżeli post i tutaj
type równa się text to chcemy wyświetlić taki artykuł.
W przeciwnym czyli else if post type
równa się image, zobaczymy czy to
był image czy photo type photo okej. Musimy
to dostosować i musimy zakończyć również end if'em
żeby nie było błędu. Zobaczmy
co nam się tutaj wydarzy na naszej stronie. Jak widzisz mamy jeden wpis i mamy
drugi wpis, więc zadziałało nam to poprawnie i możemy jeszcze uzupełnić dodatkowe
atrybuty co my tutaj jeszcze mamy. Mamy content, mamy
date i tak dalej. Natomiast my będziemy wykorzystywać na razie tylko content, dlatego
tutaj gdzie mieliśmy content wszystko co było w tym
miejscu możemy usunąć i wstawimy
sobie tutaj coś takiego. Przy okazji zobaczysz jak będziemy z tego tytułu mieli problem, zapisuje
i odświeżam. Jak widzisz wszystkie elementy HTML zostały
tutaj wyświetlane w taki sposób, a to już powinno mówić ci że laravel domyślnie
kiedy korzystamy z takiego zapisu i robi echo to robi również tak zwane escape
znaków, które mogłyby sprawić że ktoś tutaj wstrzyknie na przykład skrypt i tak
dalej więc jeżeli są sytuacje w których my wiemy że to co tutaj jest podane jest
bezpieczne i chcemy to wyświetlić jako html, wtedy musimy skorzystać z
takiego zapisu czyli nawias klamrowy, dwa wykrzykniki, a tutaj kończymy go w
ten sposób. To oznacza że treść ma być tutaj wstawiona dosłownie i
jak widzisz wtedy takie pogrubienie bez problemu działa. Jeżeli
chodzi o datę na razie i tutaj nie będziemy wyświetlać. Możemy tutaj jedynie
w zasadzie poniżej dostosować się
do obrazków, tak. Czyli powiedzmy w tym miejscu będziemy
chcieli wyświetlić post image.
Okej, powinno nam to również zadziałać po odświeżeniu i wczytał
się nasz obrazek który znajduje w katalogu public images. Jak
zatem widzisz dokładnie w taki sposób przekazujemy dane do widoku. My tych danych tutaj później przekażemy
więcej i będą dane z bazy danych, natomiast jakiś początek tutaj mamy. Na
koniec jeszcze chciałbym ci pokazać że można ten zapis uprościć
i zrobić na kilka dodatkowych sposobów. Jeżeli tutaj przekazujemy taką tablicę gdzie
mamy posts i jest równe tej zmiennej to można php skorzystać
z funkcji pomocniczej, która nazywa compact i jeżeli jej podamy string
posts to oznacza że jeżeli w tym zakresie masz zmienną
dolar posts po prostu utwórz z niej tablicę nie będzie kierował
właśnie na dolar w Austrii dokładnie ten zapis który widziałeś przed momentem to jest
alternatywa dla takiego zapisu ta funkcja stworzy nam taką tablicę. Upewnijmy
się że to działa i to jest sposób w którym ja najczęściej korzystam. Natomiast
są jeż inne możliwości możemy tutaj powiedzieć with
czyli, że chcemy wczytać ten widok z i to może być dla kogoś bardziej
czytelne i tutaj możemy pograć taką tablicę jak mieliśmy przed momentem czyli posts posts albo
w zasadzie nawet nie tablicę tylko napiszemy tutaj
posts ma kierować na posts.
Okej zobaczymy czy to jest dokładnie ten zapis. Dokładnie tak,
natomiast można również skorzystać z tak zwanych magicznych metod php one
są tutaj wykorzystywane i możemy od razu napisać with posts, czyli
laravel wtedy jeżeli widzi with cokolwiek to wie że tę część po
prostu musi wziąć i utworzyć taką zmienną w naszym widoku, a pod tą zmienną
ma znajdować się to co zostanie przekazane w tym miejscu i to również będzie
działać. Natomiast moja rada jest żebyś wybrał sobie jeden zapis
stosował go konsekwentnie, będzie dla to prostsze bo będziesz
zawsze wiedział dokładnie o co chodzi więc wybierz ten który ci się podoba.
Ja na koniec tej lekcji zostawię zapis z compact posts bo
najczęściej właśnie ten to robię. Jak zatem widzisz bardzo łatwo
możemy do widoku przekazywać dane i teraz wystarczy że te dane które są tutaj
zastąpimy danymi z serwera i będziemy mieli dynamiczną stronę.