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 jaki sposób możemy usuwać zdjęcia kiedy będzie
usuwany wpis. Mam na myśli usunięcie ich dysku lub kiedy będziemy aktualizować
zdjęcie w takim wpisie i również będziemy chcieli, a poprzednie
zostało usunięte. W jaki sposób to zrobić. To jest bardzo
proste aczkolwiek można to zrobić na wiele sposobów. Zrobimy to nas tam
gdzie te wpisy usuwamy, czyli kontrolerze PostController, okej. Przejdziemy
sobie najpierw do destroy, w miejscu gdzie usuwamy wpis po tym
jak on zostanie usunięty, tutaj cały czas mamy dostęp do jego instancji, ale
on już nie jest widoczny w bazie danych niemniej jednak możemy do tych jego danych jeszcze się
w jaki sposób odwołać i z tego powodu będziemy chcieli tutaj zaimportować
również storage. Na górze mi się to powinno dodać, jak
widzisz się dodało. Możemy z tej fasady skorzystać i kiedy ona się zaimportowała
to możemy powiedzieć tutaj po prostu delete I to będzie wykonywane
na domyślną dysku czyli w naszym przypadku public i powiemy tutaj post image. To nam zwróci
jego ścieżkę i powinien on zostać usunięty, więc zobaczmy, mamy tutaj
dwa obrazki które były wcześniej, przyjdziemy sobie do tego wpisu, który mieliśmy
tutaj, do edycji i następnie usuniemy cały ten wpis.
Jak widzimy usunął się poprawnie i również tutaj to
się odzwierciadla bo został usunięty jego obrazek. Ten które tutaj pozostał
to wcześniej nam został w edycji, dlatego też możemy go usunąć, a teraz się pozbędziemy
tego problemu, bo zrobimy rzecz następującą przejdziemy
tutaj gdzie robiliśmy update i na początku bo tutaj musimy
zrobić troszeczkę inaczej zapiszemy sobie oldImage to
będzie post image, czy tam ogóle coś jest. Teraz go zaktualizujemy.
Jak widzisz image tutaj zostanie nadpisane, będzie to w tym miejscu, dlaczego robię
to dopiero tutaj, bo chcę usunąć obrazek z dysku dopiero kiedy wiem, że udało ten wpis zaktualizować. Jeżeli
się nie udało zaktualizować, to znowu będziemy chcieli się odwołać storage
delete i oldImage, aczkolwiek
chcę wiedzieć, czy ktoś w ogóle aktualizując wpis
przesyłał obrazek bo do niektórych wpisów nie ma obrazków, dlatego tutaj muszę raz jeszcze zrobić
sobie takie sprawdzenie, jak tym miejscu. Mógłbym
całą tą linkę storage dać tutaj, ale wtedy usunę obrazek nie mając pewności
że wpisy zaktualizował natomiast tej linijce jeżeli się wszystko
uda to przechodzimy do kolejnej. Tutaj żadnych błędów nie będzie, dlatego dwa razy zrobimy
sobie takie sprawdzenie i wtedy ten stary obrazek będzie można usunąć. Zatem
musimy przejść do jakiegoś wpisu, zmienimy jego typ na photo
i wgramy obrazek, najpierw ten pierwszy. Zrobimy
update on się tutaj pojawił, długo
jeszcze tutaj nie widzimy, ale możemy go również łatwością dodać, tutaj gdzie było edit w zasadzie
to jest rzecz, którą zapomniałem zrobić, możemy dodać tutaj image z klasą
form image i po prostu wyświetlimy post photo. Powinien
się tutaj pojawiać wtedy taki obrazek. Zgadza się, pojawił się. Jest troszeczkę za duży,
ale to tylko kwestia styli, które ja później dostosuje i teraz on oczywiście pojawił
się też w tym miejscu w katalogu i zaktualizujmy go na inny, więc
będzie to image-2 update, widzimy
że tutaj jest Modified, a więc jest zaktualizowany i stary się usunął, bo nie
pozostaje w tym miejscu. To jest jeden ze sposobów jak możemy aktualizować
sobie na dysku w zasadzie te obrazki, czyli ich
stan usuwać wraz z usunięciem wpisu czy wraz z edycją, aczkolwiek jest jeszcze
inny sposób być może taki bardziej profesjonalny, ale też bardziej zaawansowany. Chciałbym ci o tym powiedzieć
są to eventy w laravel i z event'ów można korzystać na
przykład usuwając wpis możemy wyemitować event na zasadzie post delete, a w
zupełnie innym miejscu można nasłuchiwać na post delete i wtedy usunąć
na przykład pozostałe po niej obrazki, więc również jest to jeden ze sposobów, warto żebyś
tym wiedział i w razie czego zerknij jak to wygląda w dokumentacji.