Kurs Building Web Applications
Kurs Building Web Applications predstavlja napredni nivo izučavanja toga kako se kreiraju aplikacije koristeći programski jezik PHP, pri čemu se naravno najveći deo aplikacije realizuje na samom serveru koristeći PHP programski jezik na backendu, te neku od SQL baza podataka.
Za vreme trajanja ovog kursa, polaznici imaju priliku da se upoznaju sa tim koji su preduslovi neophodni da bi se napravila jedna kvalitetna i stabilna PHP aplikacija, šta je potrebno da znamo u vezi sa arhitekturom aplikacije, te kako ćemo sve to upotrebiti prilikom same izrade.
Zanima vas ovaj kurs? | Možete ga pohađati u okviru ovih ITAcademy programa: PHP Web Development Program. |
Opis i cilj kursa Building Web Applications
Pored navednog, polaznici će se upoznati sa tim kako valja kreirati aplikaciju koristeći vanilla PHP, odnosno koristeći obični, čisti PHP bez korišćenja eksternih frameworka, kao i način kreiranja iste aplikacije koristeći Laravel PHP framework, koji predstavlja jedan od najpopularnijih eksternih frameworka za PHP.
Naučićemo i to šta je MVC (Model – View – Controller), te kako on definiše arhitekturu i pravila izrade web aplikacije, te zašto nam framework kao što je Laravel može pomoći da bilo koju aplikaciju kreiramo brže, efikasnije, sigurnije vodeći se definisanim pravilima.
Cilj ovoga kursa jeste osposobiti polaznike za samostalno kreiranje web aplikacija koristeći programski jezik PHP (kao i druge jezike kao što je SQL, ali i HTML, CSS), sa naročitim naglaskom na samo razumevanje arhitekture aplikacije i njeno pravilno definisanje pre i tokom rada na samoj aplikaciji.
Naravno, cilj je i da znanja koja polaznici imaju o PHP oblastima, kao što su objektno orijentisano programiranje, rad sa bazama podataka, rad se sesijama i kolačićima, rad sa formama i slično, učvrstimo i pokažemo njihovu najbolju primenu.
Na kraju, još jedan osnovni cilj jeste da naučimo sam Laravel PHP framework, odnosno sve delove koji su bitni da bismo ga pravilno znali i razumeli – od toga kako ga instaliramo, do njegove arhitekture i rada kroz MVC model, do rada sa bazama podataka, migracijama, formama.
Kurs će vam odgovoriti na pitanja Building Web Applications
1. Šta je MVC?
MVC (model–view–controller) je design pattern (dizajnerski šablon) za kreiranje aplikacija za generalnu i specifičnu upotrebu, naročito popularan u web aplikacijama, bilo da se radi o backendu ili frontendu (možemo ga pronaći u različitim frameworkovima). Karakterišu ga tri eksplicitno razdvojene celine: model, view (pogled) i controller.
Kako se Laravel framework, koji obrađujemo na ovom kursu, upravo služi MVC modelom, vrlo nam je korisno da se upoznamo sa njim, jer će nam to olakšati veliku većinu upoznavanja sa frameworkom (kompletna struktura je zasnovana na MVC modelu i sve oko njega je u stvari samo nadogradnja tog modela i olakšavanje rada).
Kod MVC patterna je karakteristična ulazna tačka u aplikaciju, to je najčešće index strana, koja služi kao dispečer dolaznih korisničkih zahteva. Vrlo često tu možemo pronaći Router koji će nam poslužiti upravo u te svrhe. Ukoliko ste pogledali aplikaciju iz druge lekcije ovog kursa, nešto slično ste mogli pronaći upravo tu.
MVC šablon možemo pisati sami, ali takođe, možemo i upotrebiti neki od već gotovih šablona, što je najbolja varijanta.
2. Šta je model u MVC-u?
Model u MVC-u, odnosno u aplikaciji, može da se odnosi na XML, JSON, ili u većini slučajeva na strukture tabela baze podataka. Modelom određujemo kako se formatiraju podaci i logiku koja se primenjuje. Primera radi, podatke iz baze podataka čitamo drugačije nego podatke iz XML fajla. Ukratko rečeno: u modelu se bavimo rukovanjem podacima (baza podataka i programski kôd koji zna da rukuje bazom podataka) na koje se oslanjaju preostali delovi MVC arhitekture (pogledi, kontroleri). U suštini, možemo reći da model stoji na levoj strani zamišljenog dijagrama, pogledi na desnoj, dok se između njih nalazi kontroler koji će podatke iz modela preneti u poglede na potrebna mesta.
3. Šta je pogled u MVC-u?
Pogled ili View u MVC šablonu – kako smo i naveli, predstavlja prezentacionu logiku, pa stoga to može biti HTML i CSS. Dakle, to je vizuelno predstavljanje podataka iz programa pomoću na primer tabela, dijagrama, lista i sličnog. Naravno, ovde možemo dodati i JavaScript kao deo pogleda. Takođe, ovde bismo mogli dodati da se u HTML-u i CSS-u ostavlja prostor u kojem će se ubaciti podaci (na primer u slučaju PHP-a bi to bilo nešto ovako: ). Naravno, pogledi su esencijalni za bilo koju aplikaciju, jer su u suštini ono što korisnik na kraju vidi, sa čim stupa u interakciju, te putem kojih izdaje naredbe preostalim delovima aplikacije (prikaz podataka, unos podataka, brisanje podataka i slično).
4. Šta je kontroler u MVC-u?
Controller u MVC-u predstavlja deo aplikacije zadužen za prijem unosa korisnika i direktno radi sa modelom, dakle sa podacima aplikacije. Možemo reći da nam je Controller spona između Modela i Viewa, te će u stvari preuzeti i obraditi podatke u modelu, ubaciti ih u poglede i korisniku vratiti formatiran pogled na izlaz (browser u većini slučajeva). Iako se u MVC-u tehnički može izbeći korišćenje kontrolera, te se mogu definisati spone između modela i pogleda u fajlovima za rutiranje, kontroleri su mnogo praktičniji, jer nam omogućavaju grupisanje logike i povezivanje modela i pogleda za jedan entitet.
Na primer, vrlo je praktično imati kontroler koji upravlja svim podacima i pogledima za jednog korisnika, za projekat ili bilo koji drugi entitet koji imamo u aplikaciji.
5. Šta je framework, a šta biblioteka?
Ukoliko bismo želeli da pojasnimo šta je to framework, stručnim rečima bismo mogli reći da je to softverska apstrakcija koja nam omogućava standardan način za kreiranje samih aplikacija.
Mnogi bi ovome dodali da nam svaki framework generalno daje okruženje u kom koristimo neki standardan set funkcionalnosti i iznova iskorišćavamo već upotrebljeni kôd. Uz to se naravno nameće i mogućnost pisanja custom, korisničkog koda kako bismo mogli kreirati tačno onakvu aplikaciju kakvu želimo, što takođe pokazuje da imamo dosta fleksibilnosti prilikom rada.
Za razliku od frameworka, biblioteke nam ne pružaju standardan, robustan okvir za rad, već nam one pružaju manji okvir za rad uglavnom u jednom segmentu programiranja, kao što je na primer rad sa emailovima, rad sa Excel fajlovima, rad sa PDF fajlovima i slično. To praktično znači da su biblioteke tu da nam olakšaju neki specifični segment, ali nisu tu da nas vode kroz kompletnu aplikaciju kako to rade frameworkovi.
6. Šta je Laravel?
Laravel predstavlja jedan od najjednostavnijih ali i najkvalitetnijih frameworka za vrlo brzu, efikasnu i jednostavnu izradu web aplikacija, kroz korišćenje PHP programskog jezika na backendu.
Laravel je zasnovan na MVC modelu (Model – View – Controller), te nam generalno poznavanje ovog modela umnogome olakšava rad sa ovim frameworkom.
Za rad sa modelima postoji Eloquent ORM (Object-relational mapping), koji nam olakšava rad sa biznis logikom, odnosno sa bazom podataka, tabelama i modelima, te imamo i migracije za efikasno upravljanje tabelama.
Za rad sa pogledima postoji Laravel Blade Template Engine, koji nam omogućava vrlo brzo i efikasno upravljanje podacima u pogledima, odnosno u HTML-u.
U Laravelu možemo pronaći ogroman broj korisnih biblioteka i alata koji nam ubrzavaju rad, kao što su Artisan (konzolni alat za kreiranje različitih delova Laravel aplikacije, kao što su migracije, modeli, kontroleri i slično), Tinker (konzolni alat za izvršavanje Laravel koda direktno u konzoli, idealno za testiranje) i slično.
7. Koje su pogodnosti korišćenja Laravela u izradi web aplikacija?
Laravel, kao i većina drugih frameworka, nudi nam ogroman broj alata i predefinisanog koda koji nam olakšava konkretan rad sa aplikacijama. Između ostalog, ti alati nam olakšavaju kreiranje i testiranje koda (poput alata Laravel Tinker ili alata Laravel Artisan), te nam ubrzavaju rad na način da ne moramo svaki put sve ispočetka kreirati (na primer login, registracija i slično).
Laravel je framework otvorenog koda, koji je istovremeno i besplatan, što nam omogućava da imamo uvid u svaki njegov deo, kao i da pratimo u realnom vremenu njegov razvoj, te da se, ukoliko to želimo, i uključimo u njega.
Korišćenjem frameworka koji je jednostavan za učenje i rad ubrzavamo rad na kreiranju aplikacija, što neminovno dovodi do veće efikasnosti u radu, veće konkurentnosti i bolje ekspertize u poslu.
Laravel je jedan od prvih frameworka koji i dan-danas traje, što nam daje određenu dozu ozbiljnosti u radu i nemamo sumnje da se možemo osloniti na ovaj framework prilikom izrade velikih i ozbiljnih aplikacija, kako za klijente tako i za nas same.
Ukratko, Laravel framework nam nudi robustan okvir za kreiranje aplikacija, koji nam, kada se upoznamo sa njim, omogućava brzo, efikasno i sigurno kreiranje bilo kojeg tipa web aplikacije pružajući nam istovremeno pouzdan pristup i sigurnost u njegovo funkcionisanje i razvoj.
Plan i program predavanja
Modul 1: Uvod u razvoj web aplikacija
- Izrada web aplikacije
- Primer „Vanilla” PHP aplikacije (To Do App)
- Pojam frameworka
- MVC
Modul 2: Laravel
- Instalacija i podešavanje
- Organizacija, fajlovi, povezivanje
- Rutiranje
- Templatei i pogledi
- Blade Template Engine
- Kontroleri
- Rad sa bazom podataka – migracije
- Rad sa bazom podataka – ORM
- Request i Response sistem
- Forme i validacija
- Primer PHP aplikacije kroz Laravel – To Do
- Primer PHP aplikacije kroz Laravel – Notes