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
Zobaczmy zatem, w jaki sposób rozwiązać to zadanie, jak stworzyć taką prostą wyszukiwarkę.
Ja już to zrobiłem. Wyszukajmy sobie może właśnie natus, wciskam
enter i jak widzisz ten wpis nam pojawił, teraz jeżeli wyszukam jakiegoś wpisu,
który powiedzmy ma tylko literkę a, to powinno tych wpisów być wiele i
wtedy będzie nam również działać paginacja, ale domyślnie jeżeli byśmy
tutaj zrobili next, to zostałoby to dane wyłącznie page 2. Zauważ,
że w moim przypadku również dodaje się tutaj to q równa się a. Zaraz
ci pokażę jak to wszystko zrobić, więc pierwsza rzecz, którą należało zrobić to
stworzyć Controller i przypisać go do web. Przypisałem
go w ten sposób, będzie to zapytanie typie get search, search
controller i index, nazwa metody index, bo ona będzie wyświetlać wpisy i name
to jest search, w master tutaj gdzie mieliśmy ten
formularz metoda to get, jeżeli nie podamy to też będzie get
action to właśnie to, ta nazywana ścieżka i tutaj
jeszcze przekazuje wartość, czyli mówiłem, że jeżeli będzie coś wyszukane
q, to chciałbym to tutaj wstawiać, więc nie muszę tego wstrzykiwać do widoku. Wystarczy,
że tutaj skorzystam z funkcji requests get q, o tym
mogłeś niewiedzieć, żeby to zrobić ten sposób, ale dlatego to zadanie było
być może troszeczkę wymagające. Następnie nazwa name, to jest bardzo ważne,
że jeżeli wyślemy formularz, to żeby querystringu było dodane q z wartością
wpisaną w tym polu, więc to się nam wyślę do tego
kontrolera search, a wewnątrz tego kontrolera rzecz jest następująca. Odczytuje
sobie wartość parametru q, zapisuje tutaj wyszukuje
wszystkich opublikowanych wpisów, gdzie tak jak ci pokazałem tytuł light,
czyli jest jak procent następnie wpisane kół i procent
i paginacja na 3 tak jak robiliśmy wcześniej i teraz tutaj
mamy istotną rzecz, jeżeli to byśmy wykomentowali i znowu sobie
wyszukamy wszystkie, które mają a, to zauważ, że po kliknięciu Next
mamy tutaj search page 2, a nie mamy tego co tam się już
znajdowało, a jest to dla istotne, żeby tutaj się te wpisy poprawnie wyświetlały, dlatego
możemy skorzystać z posts appends i podajemy jakie parametry mają być
dopisane do linków, kiedy te linki będziemy generować, a w paginacji
te linki generowaliśmy za pomocą previous url i next url. T o
jak to zrobić, znalazłem po prostu dokumentacji mogę ci to teraz pokazać, jest
to dokładnie tym miejscu, Appending to To Pagination Links. Jeżeli skorzystamy
z append, to możemy dowolne parametry dodawać, tutaj później było wykorzystane
links, żeby je wygenerować, my z tego nie korzystaliśmy. Niemniej jednak samo appends
również działa. Jak zatem widzisz to zadanie nie wymagało zbyt wielu
kroków, ale wymagało poskładania do kupy kilku już umiejętności
i wiedzy, którą do pory zdobyłeś, a być nawet wyszukania czegoś dodatkowego,
więc jeżeli ci to udało zrobić to tym gratulacje. Jeżeli nie
to przeanalizuj sobie mój kod na spokojnie i postaraj się również wdrożyć go siebie.