WEJDŹ NA WYŻSZY POZIOM WEB DEVELOPMENTU !!!
W trakcie kursu (są pliki do lekcji) stworzysz we frameworku Laravel i języku PHP 7 aplikację internetową do rezerwacji miejsc noclegowych w obiektach turystycznych oraz dodatkowo wersję hybrydową tej aplikacji jako aplikacja mobilna na smartfony. To nie to samo co strona responsywna. Aplikacja będzie responsywna, ale oprócz tego będzie druga wersja jako osobna aplikacja na telefon komórkowy uruchamiana jak zwykła aplikacja z listy aplikacji telefonu a nie z przeglądarki internetowej.
UWAGA: kurs dla osób, które już mają pewne doświadczenie z php, Laravel i ogólnie z web development. Absolutnie nie dla początkujących! Prawie wogóle nie piszę nic na ekranie, poza skomplikowanymi zapytaniami w Laravel eloquent orm. Posiadam również wersję ponad 20 godzinną tego samego kursu, gdzie piszę wszystko na ekranie i stąd wydłużenie czasu kursu. Można przerobić tylko jeden z nich, jeden lub drugi, a można obydwa naraz. Wszystko zależy od doświadczenia kursanta, tego co chce osiągnąć itd. W razie zainteresowania link na moim profilu Udemy. W obydwu kursach wykonywana jest ta sama aplikacja.
Dlaczego aplikacja jest tak zaawansowana a kurs trwa poniżej 10 godzin? Bo bez zbędnych rozmów, bez drapania po głowie. Nie wszystko będzie wyraźnie widoczne i zrozumiane od razu. Być może będziesz musiał wykonać trochę pracy samodzielnej: print_r lub dd(), użyć konsoli chrome, zakomentować coś, odkomentować itd. Ten kurs to wyzwanie. Lub możesz, jeśli chcesz, szybko przejść przez cały wykład, kopiować pliki i uzyskać działające aplikacje jak najszybciej. Samo mięso, bez tłuszczu i kości. Prawie wogóle nie piszę nic na ekranie. Omawiam kod z plików do lekcji (70 lekcji). Jeśli chcesz możesz wyciąć lub zakomentować kod z plików do lekcji i pisać go samodzielnie. Wtedy najwięcej się nauczysz. Zmierzam prosto do celu, od pustego folderu do działających aplikacji. Bez zbędnych rzeczy, tylko dwie działające aplikacje: web i mobile od początku do końca.
To nie jest typowy kurs omawiający kolejne rozdziały dokumentacji. Stworzysz praktyczną aplikację webową z użyciem bardzo popularnego frameworka Laravel. Po drodze będzie wykorzystanych większość zagadnień z dokumentacji Laravela. Tematyka kursu dotyka wielu obszarów full stack web developmentu, nie tylko backendu: css, html, jQuery, JavaScript i inne. Kurs powstał w wersji Laravel 5.6. Pliki do lekcji zaktualizowano do Laravel 5.8. W celu wykonania aktualizacji do nowszych wersji (w tym Laravel 6) sprawdź sekcję upgrade.
To jest bardzo zaawansowana aplikacja jak na kurs online w internecie - 14 tabel w bazie danych powiązanych wszystkimi rodzajami relacji bazodanowych dostępnych w Laravelu.
JEDYNY WARUNEK ABY STAĆ SIĘ DOBRYM WEB DEVELOPEREM A TYM SAMYM BYĆ ATRAKCYJNYM DLA PRACODAWCY - JEST TAKI, ŻE MUSISZ POTRAFIĆ SAMODZIELNIE TWORZYĆ ZAAWANSOWANE APLIKACJE TAKIE JAK NA PRZYKŁAD W TYM KURSIE.
Wykorzystałem w kursie technologie, które są popularne i sprawdzone w świecie web developmentu.
*** TECHNICZNE ASPEKTY PORUSZONE W TRAKCIE KURSU ***
Zagadnienia Laravel wykorzystane w aplikacji:
instalacja
konfiguracja niezbędna do pracy
service container, service provider i bindowanie implementacji interfejsów do kontenera obiektów
cykl życia zapytania w Laravel
fasady
wstrzykiwanie obiektów (zależności)
eventy i listenery
cache-owanie w Redis
routes (ścieżki)
filtry (middleware)
Laravel Policies - zastrzeżenia akcji użytkownika w systemie
generowanie url
ochrona csrf
kontrolery, modele, widoki
Resource Controllers
GET, POST, PUT, DELETE requests, responses
przekierowania http
polecenia konsoli Artisan
widoki i system szablonowy Blade
Laravel Mix
view composers
wielojęzykowość aplikacji www
walidacja formularzy
helpery (np. funkcja route)
sesje
ciasteczka
upload plików
autentykacja (logowanie)
autoryzacja (uzyskiwanie dostępu do zasobu na podstawie uprawnień)
rejestracja użytkownika do systemu
resetowanie zapomnianego hasła
paginacja wyników z bazy danych
lazy i eager loading bazy danych
migracje bazy danych
seedery bazy danych
operacje na bazie danych: fluent query builder i eloquent orm, accessors
relacje w bazie danych: jeden do jednego, jeden do wielu, wiele do wielu, jeden do wielu poprzez model zależny (hasManyThrough), polimorficzna jeden do wielu, polimorficzna wiele do wielu
Ponadto:
jQuery
jQuery Mobile
obiektowy Java Script
Gateway Pattern
Repository Pattern
Presenter Pattern
Singleton Pattern
interfejsy
traity
elementy PHP 7
Twitter Bootstrap zmodyfikowany przez Bootswatch
Apache Cordova dla aplikacji hybrydowej
autentykacja i autoryzacja JWT (Json Web Token)
*** O LARAVEL ***
Nie bez powodu Laravel przoduje w Google Trends w porównaniu z innymi popularnymi frameworkami PHP - dzięki niemu złożone aplikacje tworzone są szybko, a to za sprawą wielu ułatwień i automatyzacji częstych zadań, np mechanizm logowania w Laravelu generujemy jednym poleceniem wbudowanej konsoli! Bardzo łatwo korzystamy z relacji w bazie danych, w tym bardziej złożonych relacji polimorficznych.
Laravel jest prawdopodobnie najłatwiejszym do opanowania frameworkiem PHP. Składnia jest prosta i intuicyjna. Aplikacje w Laravel są łatwe w późniejszym skalowaniu poziomym dzięki dobrej organizacji kodu i wbudowanym integracjom np. z Amazon S3. Chcesz użyć Redis do sesji zamiast standardowego mechanizmu sesji w plikach na serwerze? W Laravel to kilka wierszy w pliku konfiguracyjnym. Web development z Laravel to prostota i przyjemność.
*** JAK WYGLĄDA KURS ***
Prawie do wszystkich lekcji dołączone są pliki źródłowe, gotowe do skopiowania do projektu. Na slajdach pokazuję czynności, które należy zrobić w danej lekcji. Jest to na przykład kopiowanie plików lub komendy wydawane w konsoli. Następnie w edytorze omawiam kolejno pliki do zmiany w danej lekcji. Kurs powstał w taki sposób, że najpierw napisałem tą aplikację a potem podzieliłem to na 70 lekcji, do których są dołączone pliki źródłowe. W większości filmów nie piszę nic na ekranie. Robię to jedynie w przypadku bardziej skomplikowanego kodu aby lepiej wytłumaczyć dane zagadnienie. Nie ma sensu pisać na ekranie bardzo prostych instrukcji i powtarzających się wielokrotnie w każdej aplikacji.
W kursie krok po kroku tworzę w Laravelu aplikację internetową i wersję mobile, zgodnie z koncepcją od ogółu do szczegółu. Zaczynamy od szablonu aplikacji, szkieletów poszczególnych metod, aż stopniowo finalnie doprowadzam do gotowych i działających aplikacji. Kurs akcentuje bardziej backend niż frontend. Szablon html będzie do ściągnięcia.
Wcześniej zrobiłem ten sam kurs w innej wersji. Tamten kurs trwał ponad 20 godzin a ten o wiele mniej godzin. Skąd taka różnica? Otóż zmieniłem formę tego kursu. W tym kursie w przeciwieństwie do pierwszej wersji - są pliki do lekcji. A co za tym idzie, nie piszę wszystkiego na ekranie. Uznałem, że nie ma większego sensu powtarzanie na ekranie wielokrotnie instrukcji, które siłą rzeczy powtarzają się wiele razy w aplikacji, np. wyświetlanie danych w widokach czy proste pętle foreach. Ale to nie znaczy, że nie pokażę jak debugować aplikację. Jest osobna lekcja gdzie omówię wskazówki jak debugować. Natomiast na ekranie jak najbardziej piszę trudniejsze fragmenty i szczegółowo je omawiam. I mimo, że ten kurs został skrócony, to zawiera tyle samo materiału, a nawet w niektórych miejscach lepiej wytłumaczone są niektóre zagadnienia.
Cały kurs jest wykonany w oparciu o oprogramowanie darmowe, najczęściej open-source.
*** CO SŁAWNI LUDZIE MÓWIĄ O PROGRAMOWANIU I UCZENIU SIĘ? ***
Steve Jobs powiedział, że każdy powinien nauczyć się programować, bo to uczy myślenia. Więc aby nauczyć się programować czyli lepiej myśleć, trzeba tworzyć aplikacje - programować je. Im więcej tym lepiej. Im bardziej złożone aplikacje tym lepiej. Nie wystarczy sucha teoria z dokumentacji. Trzeba coś stworzyć samodzielnie. Programowanie to rozwiązywanie problemów. Nie będziesz dobrym web developerem jeśli zatrzymasz się jedynie na teorii. Żaden kurs nie zrobi z ciebie dobrego web developera (chyba, że do prostych stron z zakładką "o firmie", "zaufali nam" i z prostym formularzem html). Dobrym web developerem będziesz jedynie wtedy, gdy będziesz w stanie samodzielnie budować złożone aplikacje, takie jak na przykład w niniejszym kursie.
Z kolei inny wielki człowiek - Benjamin Franklin powiedział: "Pokaż mi a zapomnę, naucz mnie a może zapamiętam, zaangażuj mnie a nauczę się". Trudno jest angażować kogoś w kursie online bez bezpośredniego kontaktu z kursantem. Ale weź sobie do serca to co powiedział ten wielki człowiek. I miej świadomość, że musisz aktywnie uczestniczyć w procesie nauki. Innymi słowy - pisać samodzielnie z głową a nie tylko kopiować i wklejać bez analizy. Web development to nie masaż - samo się nie zrobi ani nikt nie zrobi za nas.
*** JAK KORZYSTAĆ Z KURSU ABY ODNIEŚĆ NAJWIĘCEJ KORZYŚCI I NAJWIĘCEJ SIĘ NAUCZYĆ? ***
Kod z plików do lekcji, który sprawia problemy, najlepiej jest napisać samodzielnie niż skopiować z pliku. Natomiast aby przyspieszyć dojście do końca kursu, nie trzeba pisać samodzielnie kodu, który już dobrze znasz, np. proste pętle foreach czy wyprintowanie wartości zmiennej za pomocą silnika Laravel Blade, co powtarza się wielokrotnie w kodzie. Jeżeli zależy ci na najszybszym ujrzeniu efektów aplikacji na swoim komputerze po prostu oglądasz i wklejasz pliki do lekcji, a jeśli chcesz lepiej wszystko zrozumieć i najwięcej się nauczyć - wycinasz z plików kod danej lekcji i własnoręcznie go piszesz.
Po każdej lekcji przejrzyj wszystko dokładnie co zostało zrobione i postaraj się jak najlepiej to zrozumieć:
Porównaj z efektami na ekranie lub użyj debugowania np. funkcji dd() lub Chrome dev tool, aby pokazać na ekranie celem lepszego zrozumienia jak dany fragment kodu działa.
Możesz porównywać kod z dokumentacją Laravela, np. przy walidacji formularzy możesz spojrzeć w dokumentacji jakie są inne reguły walidacji formularzy, niż te które aktualnie pokazuję na ekranie.
Albo podczas tworzenia migracji zobacz jakie inne typy kolumn w bazie danych są opisane w dokumentacji i na próbę zapisz inną i zobacz efekty po wydaniu komendy w konsoli.
Jeśli uważasz, że coś można zrobić inaczej, nie wahaj się tego zrobić i napisać inaczej niż jest na ekranie. Innymi słowy bądź aktywny w trakcie kursu. Wówczas najwięcej z niego wyniesiesz, niż gdy będziesz tylko biernie słuchał i kopiował kod z plików do lekcji lub z ekranu bez przeanalizowania jego działania. Jeśli czegoś nie zrozumiałeś, zadaj mi pytanie lub szukaj w internecie. Laravel ma dużą społeczność i jest mnóstwo materiałów na jego temat w sieci.
Baw się z kodem wklejonym ze źródła - zakomentuj, odkomentuj, "wydampuj" coś itd. Dzięki temu lepiej zrozumiesz co się dzieje.
Pamiętaj, że tylko praktyka czyni mistrza. Jeśli trzeba - przerób kurs dwa lub więcej razy. Notuj w trakcie kursu jak prawdziwy student. Korzystaj z dokumentacji, z wyszukiwarki Google. Wreszcie postaraj się napisać aplikację samodzielnie, niekoniecznie tą samą jak w kursie, możesz próbować coś zmienić, dodać itd. Żaden pojedyńczy kurs nie zrobi z ciebie bardzo dobrego web developera. Może jedynie mocno przybliżyć cię do tego celu. Im więcej praktyki tym lepiej.
QA:
Dlaczego używasz jquery mobile a nie inny framework ?
Aplikacja mobilna to nie główny temat kursu, to kilka ostatnich lekcji kursu. Poprzez zbudowanie aplikacji mobilnej pokazuję co można zrobić z Laravel. To są pewne generalne koncepcje, które później mogą być zastososowane przy innych frameworkach dla aplikacji mobilnych. Kurs skupia się na Laravelu i wzorcach projektowych. Jednak jquery nie zniknął z rynku. Wiele firm jeszcze go wymaga do utrzymywania istniejących stron czy nawet budowania nowych.
Stworzyłeś aplikację w tym kursie używając Laravel 5. Teraz mamy już Laravel 10. Czy to znaczy, że ten kurs jest przestarzały i niczego się z niego nie nauczę?
Absolutnie nie! W narzędziach takich jak frameworki PHP podstawy i bazowa składnia prawie nigdy się nie zmieniają niezależnie od wersji. Ale oczywiście każde utrzymywane oprogramowanie ewoluuje z biegiem czasu. Dlatego zawsze sugeruję abyś używał tej samej wersji oprogramowania jakiej używa instruktor. To zapobiega błędom i zakłopotaniu. Jako ktoś, kto chce się nauczyć tworzyć aplikacje internetowe, musisz mieć świadomość, że prawdziwy web development wymaga czasami dostosowania kodu do najnowszej wersji - ale nie zawsze jest to konieczne, nie każda firma dostosowuje swój soft do najnowszej wersji, która właśnie się pojawiła. Oprogramowanie zmienia się tak szybko, że instruktorzy nie nadążaliby z tworzeniem kursów, które pasują do najnowszej wersji oprogramowania, które jest tematem kursu. To nawet nie jest zalecane, bo jako student utraciłbyś ważny aspekt web developmentu jakim jest świadomość, że wszystko często się zmienia i trzeba umieć dostosowywać się do tego.