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 w jaki sposób możesz dostosować strony błędów i
strony błędów są różne, ale powiedzmy, będziemy będziemy mieli stronę błędu
404 jeżeli na przykład tutaj wpiszę adres, który nie istnieje i laravel
domyślnie nam zwrócił taką oto stronę. Jeżeli sobie podejrzymy tutaj jeszcze w konsoli
network i odświeżę, zaznaczę all, widzimy że status
rzeczywiście jest 404 czyli odpowiedni kod jest zwracany, ale również
jakiś widok html i teraz w jaki sposób to można dostosować. Jest
to bardzo bardzo proste wystarczy że tutaj gdzie mamy widoki czyli
views utworzymy nowy katalog errors a w
nim utworzymy sobie poszczególne strony. Czyli jeżeli kod błędu jest 404 to
stronę nazywam, czy w zasadzie plik 404 blade php i my już
mamy taki widok wcześniej przygotowany tutaj w html, 404,
możemy sobie skopiować, jest to tutaj dokładnie ten
element wrapper. On będzie potrzebny w sekcji, więc tutaj bez
problemu sobie taką sekcje możemy wstawić, czyli jest to standardowy widok
blade tak jak mieliśmy wcześniej i tutaj
napiszemy po prostu 404 not found. Zobaczmy czy teraz coś się
zmieni, po odświeżeniu widzisz, że dokładnie tak stało. Rozszerzyliśmy
sobie cały ten layout. Oczywiście jeżeli bym tego nie zrobił to możemy mieć jakąś bardziej skromną
stronę 404, ale myślę, że taka jest w porządku. Jeżeli chodzi o
inne błędy, które się mogą pojawić to będziemy analogicznie te strony dostosowywać. Pokażę
ci teraz jak można wygenerować błąd 503 i kiedy on
się pojawia. Przejdziemy do konsoli i wpiszemy
polecenie, którego jeszcze ci nie pokazywałem php artisan down
i po komunikacie możesz się domyślić, że nasza aplikacja jest teraz w trybie, takiej można
powiedzieć konserwacji. Teraz, co to oznacza, jeżeli przejdziemy na naszą stronę i
odświeżę, to zobaczymy 503 serwis niedostępny. Dokładnie
taki sam kod będzie oczywiście tutaj zwracany w network, zauważ
i to znaczy, że serwis jest niedostępny. Za pomocą właśnie php
artisan down możesz na moment wyłączyć swoją stronę żeby użytkownicy nie mogli
z niej korzystać, jeżeli chcesz wykonać właśnie jakieś prace można powiedzieć konserwacyjne,
czyli coś istotnego na niej zmienić, aczkolwiek ja ci jeszcze pokażę w tym kursie, jak zrobić
deployment, który będzie wszystko podmieniał od razu. Nie mniej jednak pamiętaj,
że takie polecenie jest i teraz mamy błąd 503, więc
możemy spokojnie sobie zduplikować ten plik i nazwę po prostu
503. Tutaj wpiszemy sobie po
prostu coś takiego jak tutaj Service Unavailable, a tutaj
możemy wpisać również to samo, a pod spodem damy jakiś
komunikat, że trwają jakieś prace. Na przykład taki
oto komunikat. Zobaczmy czy to się dostosuję. Oczywiście tak też się
stało aczkolwiek myślę, że tutaj lepszym pomysłem chociaż już będę tego robił, byłoby
nie wyświetlanie całej strony, bo wtedy ktoś będzie próbował korzystać z wyszukiwarki i
jakichś innych rzeczy, a nasz serwis mimo tego nie będzie odpowiadał, dlatego że kontrolery
i tak dalej nie będą odpowiadały kiedy mamy php artisan down
ustawione i kiedy mamy właśnie 503 Service Unavailable, więc
tutaj można by zrobić tak, żeby nie rozszerzać tego głównego layout'u, ale musielibyśmy
przygotować jakieś alternatywny, który również dobrze wygląda. Nie mniej
jednak widzisz, że dowolne błędy możesz obsłużyć tworząc po prostu templatkę
na zasadzie kod błędu kropka blade php. No i teraz na koniec
jeszcze pokażę ci jak uruchomić stronę z powrotem, czyli jest to php artisan
app i to sprawi że nasza strona już nie będzie trybie maintenance i
będzie zwracać poprawne odpowiedzi, czyli tym przypadku 200.
404.blade.php · 1 min
@extends('layouts.master')
@section('title', '404 Not Found')
@section('content')
<div class="wrapper">
<div class="rte">
<h1>404 Not Found</h1>
<p>Upsss... There's nothing here.</p>
</div>
</div>
@endsection503.blade.php · 3 min
@extends('layouts.master')
@section('title', '503 Service Unavailable')
@section('content')
<div class="wrapper">
<div class="rte">
<h1>503 Service Unavailable</h1>
<p>We're updating our site. Be right back!</p>
</div>
</div>
@endsection503.blade.php · 3 min
@extends('layouts.master')
@section('title', '503 Service Unavailable')
@section('content')
<div class="wrapper">
<div class="rte">
<h1>503 Service Unavailable</h1>
<p>We're updating our site. Be right back!</p>
</div>
</div>
@endsection404.blade.php · 1 min
@extends('layouts.master')
@section('title', '404 Not Found')
@section('content')
<div class="wrapper">
<div class="rte">
<h1>404 Not Found</h1>
<p>Upsss... There's nothing here.</p>
</div>
</div>
@endsection503.blade.php · 3 min
@extends('layouts.master')
@section('title', '503 Service Unavailable')
@section('content')
<div class="wrapper">
<div class="rte">
<h1>503 Service Unavailable</h1>
<p>We're updating our site. Be right back!</p>
</div>
</div>
@endsection404.blade.php · 1 min
@extends('layouts.master')
@section('title', '404 Not Found')
@section('content')
<div class="wrapper">
<div class="rte">
<h1>404 Not Found</h1>
<p>Upsss... There's nothing here.</p>
</div>
</div>
@endsection