About

Web Development z Laravel (framework PHP). Stwórz Zaawansowaną Aplikację - System Rezerwacyjny i Hybrydową Wersję Mobile

Covered topics:

  • Poznasz bardzo popularny framework PHP - Laravel
  • Zbudujesz od podstaw zaawansowaną aplikację internetową we frameworku Laravel - system rezerwacyjny
  • Zbudujesz werjsę mobilną hybrydową aplikacji internetowej na telefony komórkowe
  • Zdobędziesz bardzo dobre i złożone ćwiczenie praktyczne budując dwie wersje aplikacji: internetową i mobilną hybrydową
  • Przebrniesz przez proces tworzenia zaawansowanej aplikacji dotykając wielu aspektów pracy full stack web developera: nie tylko PHP i Laravel ale również technologii frontendowych
  • Poznasz metodykę pracę przy tworzeniu aplikacji: od szablonu html do gotowego projektu
  • Wejdziesz na zaawansowany poziom tworzenia aplikacji internetowych we frameworku Laravel
  • Możesz wrzucić projekt z kursu to swojego porfolio i pochwalić się nim w CV
  • Poznasz ważne zagadnienia Laravel takie jak na przykład service container i service providers
  • Poznasz obiektowy Java Script^ dzięki któremu kod jQuery będzie lepiej zorganizowany i czytelniejszy
  • Poznasz popularne wzorce projektowe^ dzięki którym późniejsze poruszanie się po kodzie i modyfikacje są łatwiejsze
  • Zbudujesz uniwersalne API^ które obsłuży zarówno aplikację webową (14 tabel w bazie danych) jak i hybrydową aplikację mobilną
  • W aplikacji użyjesz wszystkich dostępnych w Laravelu relacji bazodanowych - w tym polimorficznych^ dzięki czemu aplikacja jest później łatwiejsza w modyfikacji i utrzymaniu
  • Dowiesz się jak lepiej debugować aplikację
  • Będziesz zainspirowany do budowania własnych rozwiązań a nie tylko kopiowanie cudzych ( np. hybrydowe api i sposób powiadomień w czasie rzeczywistym wymyśliłem sam )
  • I wiele innych

Description

WEJDŹ NA WYŻSZY POZIOM WEB DEVELOPMENTU !!!

W trakcie kursu (są pliki do lekcji^ w większości wideo nie piszę kodu na ekranie^ omawiam go) 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.



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 7. 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.




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.