vježba 6: php mvc vježbe
TRANSCRIPT
1
Vježba 6: PHP MVC vježbe
Instalacija XAMPP-a/MySQL-a – Video:
http://www.mediafire.com/download/fibb79d6ic995di/1_XAMPMySQL.7z
TSC2 standalone codec:
https://support.techsmith.com/attachments/token/unttvsdo6z76fpy/?name=Setup_TSC2.msi
1. Na C disku u folderu xampp, pronađite xampp-control.exe, zatim pokrenite Control panel i
uključite servise za Apache i MySQL.
2. Na C disku pronađite folder PhpStorm i otvorite ga. Zatim u folderu bin pronađite PhpStorm.exe i
pokrenite ga.
3. Nakon pokretanja PhpStorma kliknite na Enter licence i upišite licenčne podatke koji se nalaze na
Z:Students u datoteci PhpStorm_Key.txt
4. Nakon što se PhpStorm otvorio provjerite postoji li koji projekt u njemu otvoren. Ako postoji odite
na File/Close Project. Trebali biste dobiti sljedeći prikaz u PhpStormu:
5. Zatim kliknite na Create New Project, te odaberite sljedeće:
a. Project name: PHPMVCG2
2
b. Location: C:\xampp\htdocs\xampp\PHPMVCG2
c. Project type: Empty project
6. Nakon toga odite na File/New/Directory i tako dodajte foldere:
a. application
b. views
UPOZORENJE: oba foldera moraju biti u PHPMVCG2 folderu/projektu
7. Nakon toga desnim klikom miša na PHPMVCG2, New/PHP File, dodajte php datoteku naziva
index.php
UPOZORENJE: Pazite na velika/mala slova i nazive!
8. U daljnjem dijelu vježbi će se raditi u folderu application.
9. Desnim klikom miša na application, New/PHP File dodajte prvi file naziva config
10. config.php vam se mora nalaziti u folderu application, te u njemu će se definirati parametri
konekcije na MySQL server.
3
UPOZORENJE: Kod parametra DB_NAME, trebate upisati ime baze koja se nalazi na vašem serveru.
11. Nakon što su definirani parametri konekcije, desnim klikom miša na application, New/PHP Class
treba napraviti klasu Model
12. Zatim desnim klikom miša na application, New/PHP Class treba napraviti i klasu Db
4
13. U klasi Db treba definirati privatnu statičnu varijablu db i javnu statičnu metodu init.
14. U metodi init treba provjeriti postoji li već aktivna konekcija u varijabli db, te ako ne postoji treba
je inicijalizirati.
15. Zatim će se staviti try..catch u slučaju izuzetka prilikom spajanja na bazu.
16. Nakon toga u try se pokušava spojiti na bazu s danim parametrima konekcije u config.php datoteci.
5
17. Na kraju metode treba vratiti varijablu db u kojoj se nalazi konekcija.
18. Sada treba nastaviti programirati u Model klasi, definirajući dvije protected varijable (_db i _sql),
konstruktor, te jednu protected metodu i jednu javnu metodu.
6
19. U konstruktoru se treba inicijalizirati konekcija, pozivajući statičnu metodu init iz klase Db, te tu
konekciju treba staviti u varijablu _db.
20. Pomoću metode _setSql treba se napuniti protected varijabla _sql primajući parametar sql _setSql
metode.
21. Metoda getRow prvo treba provjeriti je li je u protected varijabli _sql upit, te ako nije treba se
dobiti greška.
7
22. Ako je upit u _sql varijabli, tu varijablu treba pripremiti za izvršavanje, te je zatim i izvršiti, te ako
je nastao kakav rezultat(vraćeni redovi) – dohvatiti ga.
23. Nakon završetka razvoja generičkog Modela, treba napraviti klasu naziva contactModel, u kojoj će
se definirati metoda za dohvaćanje first_name i last_name polja, contact-a s id 1.
24. Desnim klikom miša na application, New/PHP Class treba napraviti i klasu contactModel
25. Klasa contactModel treba naslijediti generičku klasu Model
8
26. U klasi contactModel treba se definirati metoda koja će dohvaćati contact-ovo first_name i
last_name iz tablice my_contacts gdje je id = 1. Ta metoda nositi će naziv getContactById
27. U navedenoj metodi definirati će se potrebni upit, staviti u varijablu _sql pomoću metode _setSql
iz klase Model, te dohvatiti rezultat u varijablu contactDetails
28. Nakon toga u ISTOJ metodi (getContactById) treba provjeriti je li je varijabla contactDetails prazna
– ako je treba vratiti false, a ako nije treba vratiti rezultat u njoj.
9
29. Kreiranje modela je završeno. Sada treba napraviti klase Controller i Load desnim klikom miša na
application, New/PHP Class
30. Odmah treba kreirati i praznu php datoteku u folderu views, desnim klikom miša na views,
New/PHP File, te datoteku treba nazvati someview
10
31. Nakon kreiranja svih klasa i datoteke, treba se vratiti u klasu Controller, te definirati dvije javne
varijable (load i contactmodel), konstruktor i metodu naziva home
11
32. Zatim u klasi Load treba napraviti metodu view s dva ulazna parametra.
33. Metoda view treba dohvatiti i uključiti datoteku koja će prikazati podatke iz modela
12
34. Zatim se treba vratiti u klasu Controller i u konstruktoru inicijalizirati s ključnom riječju new klase
Load i contactModel, te na kraju pozvati metodu home iz klase Controller
35. Metoda home u klasi Controller treba izvršavati metodu getContactById iz klase contactModel i
metodu view iz klase Load
36. Sada je završen i razvoj Controllera, te je ostao još view.
37. U datoteci someview.php treba se napraviti HTML stranica koja će prikazivati podatke na
korisničkom sučelju.
38. Prvo se definiraju html tagovi:
13
39. Zatim head i body:
40. U head-u meta charset i title:
41. U body-u h1 i php kod za prikaz:
14
42. Zatim će se napraviti još jedna datoteka u application folderu, desnim klikom miša na application,
New/PHP File, te datoteku treba nazvati PHPMvcCore
43. U datoteci PHPMvcCore se trebaju uključiti sve datoteke (odnosno funkcionalnosti) ove aplikacije,
te nakon ukjluivanja svih datoteka treba inicijalizirati Controller
15
NAPOMENA: Navedenim redom ih morate uključiti
44. Obzirom da u svim web lokacijama se uvijek automatski prva otvara stranica s nazivom index, te
upravo zbog toga u ovoj aplikaciji u toj aplikaciji treba uključiti PHPMvcCore.php datoteku.
Također uključiti će se i prikaz grešaka.
45. Nakon toga otvorite najnoviju verziju internet preglednika po vašem izboru, zatim u navigation
bar-u upišite localhost:{broj porta vašeg apache servera(zanemarite 443)} (primjer:
localhost:8080).
16
46. Potvrdite autentifikaciju, te u navigation baru dopišite PHPMVCG2 i zatim stisnite enter
17
Samostalni zadatak
1. Postojeću aplikaciju nadogradite s vašim kodom tako da u view-u ispod first_name-a i last_name-
a, budu prikazana i polja email i location iz tablice my_contacts.