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
Mamy już fabrykę która pozwala nam tworzyć nowe wpisy. Teraz stworzymy
sobie seeder, który będzie nam właśnie korzystając z tej fabryki, te wpisy do
bazy danych wstawiał. Więc przejdziemy sobie raz jeszcze tutaj do naszego boxa i wpiszemy
php artisan make seeder i tutaj z kolei konwencja
jest taka żeby nazywać te seedery jeżeli przejdziemy do seeds. Tutaj
mamy DatabaseSeeder. Okej, to jest ten główny, ale żeby je nazywać nazwa
modelu, table seeder, czyli w naszym przypadku posts table
seeder, okej. On zostanie tutaj dla utworzony
i w zasadzie już katalog database nie ma przed tobą żadnych tajemnic. Wiesz
to factories, migracje również znasz i seed'y znajdują się w tym miejscu,
więc seeder został tutaj utworzony. Zobaczymy jak on wygląda i teraz
kiedy będziemy wykonywać za moment polecenie artisan seed, to będzie wykonywana
ta metoda run, więc co my w niej możemy zrobić. Możemy się odwołać do funkcji factory
bo ona jest globalna. Podać jej tutaj App Post, to co robiliśmy w
lekcji przedniej i możemy na przykład podać 5, to oznacza, że chcemy utworzyć pięć
takich elementów i od razu możemy powiedzieć create, czyli one zostaną fejkowo
utworzone i zapisane w bazie danych. Ok, teraz
możemy tutaj wrócić i wpisać php artisan db seed,
to również znajdziesz pomocy artisan'a, jeżeli zerkniesz taka komenda tam jest i możemy
powiedzieć class równa się i pobrać którą chcemy wykonać, więc będzie to post
table seeder. Poczekajmy,
zobaczmy i teraz jeżeli odświeżymy naszą bazę danych okaże że pięć dodatkowych fejkowych
wpisów zostało dodanych, a to by oznaczało tylko tyle, że po odświeżeniu naszej strony
one na tej stronie się pojawią. Natomiast mamy taki problem że są tutaj głównie wpisy
zwykłe czyli te tekstowe bo musimy w którymś momencie skorzystać
z tego state image, aby również takie zostały dodane. Teraz pokażę
Ci ciekawą komendę, czyli jest to php artisan migrate fresh.
Ona sprawi, że wykonamy wszystkie migracje od nowa i usuniemy dane,
które mieliśmy w bazie danych. Zobaczmy wszystko co do pory mieliśmy został
wyczyszczone, czyli na naszej stronie będzie komunikat że nie dodano jeszcze żadnych wpisów i
teraz będziemy chcieli seeder wykonać od nowa, ale najpierw go troszeczkę zmodyfikujemy,
czyli zamiast korzystać z czegoś takiego, to
ja wrzucę tutaj fragment kodu, który pozwoli nam dodać i wpisy tekstowe i te ze zdjęciem.
Zobacz, chcę wykonać pętlę for each od jeden dziesięciu i
będę chciał tutaj utworzyć nowe factory. Właśnie w ten sposób, nową
instancje z naszego posta. Natomiast później będziemy sprawdzać przy
wartościach parzystych i nieparzystych. Będziemy chcieli po prostu przy tych
parzystych dodawać tutaj state image to co ci już pokazywałem wcześniej jeżeli zrobimy
Factory następnie state image i dopiero później create, to zostanie
utworzony obrazek. Natomiast jeżeli tutaj ten warunek nie będzie spełniony to po prostu
zostanie to utworzone od razu tak jakbyśmy pisali factory, App Post class, strzałka
create. Okej, więc jeżeli teraz jeszcze raz wykonamy właśnie seeder tej
klasy to powinniśmy mieć już różne wpisy, po odświeżeniu widzimy
że na przemian będą takie ze zdjęciem i takie tekstowe i teraz jeszcze ostatnia
rzecz żebyś nie musiał tutaj za każdym razem podawać którego seeder'a chcesz wykonać to
można wpisać po prostu php artisan db seed i wtedy zostanie wykonana
metoda run tej głównej klasy i w niej możemy zdefiniować jak inne
mają zostać wykonane, więc tutaj było UsersTableSeeders, ale jak widzisz
takiego seeder'a tutaj w ogóle nie ma, więc będziemy chcieli sobie tutaj podać
nasz czyli PostTableSeeder i powiem ci
od razu, że warto to zawrzeć w tablicy, bo dzięki temu będziesz tutaj mógł w tej tablicy podawać
kolejne seedery. Jeżeli będziesz potrzebował tutaj jeszcze jakieś dane
wstawiać do bazy danych, okej. Wykonajmy sobie tutaj jeszcze
raz migrate fresh, to nam wszystko usunie i teraz możemy wykonać php
artisan db seed. Zobacz tylko tyle powinno
to również zadziałać. Po odświeżeniu będziemy mieli nowe zupełnie tutaj dane,
to będzie dla nas bardzo przydatne kiedy właśnie tworzymy stronę internetową i nie chcemy
za każdym razem dodawać tych danych w sposób ręczny, a często będziemy coś
zmieniać i będzie to wymagało wyczyszczenia bazy danych.