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
Kilka lekcji temu pokazałem ci w jaki sposób możemy automatycznie ustawić
jakiś atrybut za pomocą set slug attribute. Wtedy nazywało się to
mutators. Natomiast w tej lekcji chcę ci pokazać coś co nazywa się accessors
i za pomocą tego będziemy mogli tworzyć coś to można nazwać
takim wyliczonym atrybutem, coś ja computed property i tak
naprawdę na modelu będzie to dostępne i mimo tego, że nie ma tego w bazie danych. Już spieszę z
wyjaśnieniem, mamy tutaj tekst, jeżeli przejdziemy do tego wpisu mamy
taki sam tekst. Natomiast ja chciałbym żeby ten tekst tutaj na tej głównej stronie
był przycięty, żeby ubyło go po prostu troszeczkę mniej i może jedną z pierwszych rzeczy, którą
sobie zrobimy żeby tego dokonać to będzie przejście do factory, czyli
będzie to w database factories i tutaj mamy post
factory i tutaj gdzie robiliśmy paragraf, gdzie mieliśmy pięć jakby
tych zdań, zróbmy sobie może 15, okej. Przejdziemy
teraz do terminala i wykonamy php artisan migrate fresh
i następnie php artisan
db seed, żeby od nowa sobie te dane uzupełnić. Jak widzisz, bardzo, bardzo
nam przydały te sztuczne dane, inaczej musielibyśmy to wszystko dodawać
ręcznie. Jeżeli teraz odświeżę mamy dłuższy tekst, no właśnie. Tutaj jest dłuższy, a
chciałbym żeby on tutaj był przecięty, więc jak to zrobić, otóż
przejdziemy sobie do naszego modelu, czyli będzie to post, dokładnie
tutaj. Jak mieliśmy set title attribute to teraz stworzymy sobie funkcję,
która będzie mówiła get exerpt attribute. Czyli chcę
stworzyć atrybut excerpt, czyli taki wycinek i dlatego
nazywają go w ten sposób, get, później docelowa nazwa i attribute. Okej,
no i tutaj będziemy mieli w zasadzie tutaj będziemy mieli dostęp
do this, więc będziemy mogli coś zwrócić. Na razie zróbmy tak return
this content i pokaże ci gdzie chciałbym tego skorzystać.
Jeżeli mamy posts i mieliśmy tutaj główną
treść czyli content to teraz będziemy mogli skorzystać excerpt. Dzięki
właśnie temu, że na modelu to zdefiniowaliśmy, mimo tego, że tego nie ma w bazie danych, okej. Tutaj
jeszcze musimy napisać function, teraz będzie porządku i nie
powinno się tutaj na razie nic zepsuć i teraz będę chciał właśnie w tej wyliczonej
właściwości będę chciał przyciąć ten tekst, czyli po pierwsze,
bo później będziemy w tym tekście mieli różne znaki HTML'owe, to nie
chciałbym, żeby na przykład było coś takiego jak b jakiś tekst i znowu
koniec b i żeby mi przecięło tekst w ten sposób, bo jeżeli coś takiego wstawimy do HTML'a,
będziemy mieli problem, więc po pierwsze będę chciał zrobić strip_tags. Jest to funkcja php
dostępna jeśli przekażemy this content to jeżeli tam będą
tag'i HTML'owe zostaną ucięte i teraz chciałbym do trzystu znaków
przyciąć jeszcze cały ten tekst już z wyciętymi tag'ami HTML'owymi. Zrobimy
to za pomocą laravel'owej str limit. W ten
sposób, podajemy tekst i podajemy liczbę znaków okej
automatycznie tutaj jak wcisnąłem Enter to zostało zaimportowane to jest bardzo potrzebne żeby
tutaj było góry ten Helper i powinno nam to już zadziałać więc odświeżymy
jak widzisz na stronie zostało to przecięte do trzystu znaków, mamy trzy
kropki na końcu, co ważne jeżeli tekst miałbym niż 300 znaków to te trzy kropki
nie będą doklejane, czyli to jest fajne że nie musimy tutaj już kombinować własną
logiką laravel udostępnia nam właśnie taką funkcję i w ten możesz
tak naprawdę tworzyć sobie dowolne właściwości czy pola,
które będziesz pobierał, a one będą wyliczone w locie mimo tego że nie istniało w bazie
danych.