Download - PHP za pocetnike - predavanje 6
![Page 1: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/1.jpg)
PHP za početnike
Academy387 Nermin Šehić
Predavanje 6
![Page 2: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/2.jpg)
Zadaca 2
• https://github.com/newPrimitives/php-kurs/blob/master/lecture4/homeworkSolution.php
![Page 3: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/3.jpg)
Recap: predavanje 5• Definicija funkcije
• Sintaksa
• Primjeri koristenja
• Pass by value & pass by reference
• Global VS local varijable
• Optional i required varijable
• Pagination
![Page 4: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/4.jpg)
OOP• Objektno orijentisano programiranje je metoda
programiranja kojoj je temeljni princip da se klasa definise kao samostalna programska cjelina koja opisuje nesto.
• Unutar klase definisemo metode i varijable koje opisuju klasu
• Objekat je instanca klase i objekat koristimo da pristupimo metodama te klase
![Page 5: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/5.jpg)
OOP
• Svaka klasa se pise u zasebnom PHP file-u
• Instanca te klase se mode koristiti kroz citavu aplikaciju
![Page 6: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/6.jpg)
Primjer klase
• Klasa pas
• Property klase pas: boja, godine, rasa, pol
• Metode klase pas: spava(), laje(), trci()
![Page 7: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/7.jpg)
Sintaksa klase u PHP
• https://github.com/newPrimitives/php-kurs/blob/master/lecture6/classBasic.php
![Page 8: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/8.jpg)
Built in klase u PHP
• http://php.net/manual/en/book.imagick.php
![Page 9: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/9.jpg)
Property klase
• Property klase je varijabla koja opisuje klasu
• Moze se inicijalizirati unutar klase, individualno kroz objekat ili kroz metodu
![Page 10: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/10.jpg)
Primjeri property-a u klasi
• https://github.com/newPrimitives/php-kurs/blob/master/lecture6/classProperties1.php
• https://github.com/newPrimitives/php-kurs/blob/master/lecture6/classProperties2.php
![Page 11: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/11.jpg)
Metode u klasi
• Metode su u sustini funkcije koje su definisane unutar klase
![Page 12: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/12.jpg)
Primjeri metoda
• https://github.com/newPrimitives/php-kurs/blob/master/lecture6/GenerateHTML.php
![Page 13: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/13.jpg)
Visibility level
• Visibility level neke metode ili propery-a određuje njegovu dostupnost
• Postoje tri nivoa visibility level-a - public- protected- private
![Page 14: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/14.jpg)
Visibility level
• Metode i varijable deklarisane kao public se mogul pristupiti sa bill kojeg mjesta u aplikaciji
• Metode i varijable deklarisane kao protected su dostupne unutar klase i svih klasa koje nasljeđuju tu klasu
• Metode i varijable deklarisane kao private su dostupne samo unutar te klase
![Page 15: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/15.jpg)
Visibility level
• https://github.com/newPrimitives/php-kurs/blob/master/lecture6/visibility.php
![Page 16: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/16.jpg)
• Private i protected variable ne utica na sigurnost web stranice i koriste se u svrhu developmenta i boljeg koda
![Page 17: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/17.jpg)
Inheritance
• Naziv nasljeđivanje odnosi se na činjenicu da jedna klasa može naslijediti dio ili svu strukturu i ponašanje od druge klase.
• Klasa koja nasljeđuje zove se podklasa (subclass) klase od koje nasljeđuje.
• Ako je klasa B podklasa klase A onda ja klasa A nadklasa (superclass) klase B.
![Page 18: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/18.jpg)
Inheritance
• Podklasa može nadopunjavati strukturu i ponašanje klase koju nasljeđuje, a može i zamijeniti ili izmijeniti naslijeđeno ponašanje, ali ne i naslijeđenu strukturu.
![Page 19: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/19.jpg)
Person
• name • date of birth • place of birth • gender
Student
• student id • year of study
Professor
• employee id • courses teaching
![Page 20: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/20.jpg)
• https://github.com/newPrimitives/php-kurs/blob/master/lecture6/inheritance.php
![Page 21: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/21.jpg)
MVC
• MVC: Model - View - Controller
• MVC je “arhitektonska schema” koja se koristi za strukturisanje aplikacije, foldera, klasa i funkcija
• Osmisljen 1979, postao popularan zahvaljujuci Struts i Ruby on Rails frameworcima
![Page 22: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/22.jpg)
Model (logika aplikacije)
View (prezentacija)
Controller (predstavlja model
useru)
![Page 23: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/23.jpg)
Zadaca 3
• Skinuti template za zadacu 3
• Template sadrzi klasu User koja ima name, date of birth, place of birth property-e
• Napraviti klasu academyStudent koja nasljeđuje klasu user i ima jos dva property-a: kurs i trajanje kursa
![Page 24: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/24.jpg)
To sum up…• OOP
• Klase
• Property klase
• Metode klase
• Visibility level
• Inheritance
• MVC
![Page 25: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/25.jpg)
Pitanja?
![Page 26: PHP za pocetnike - predavanje 6](https://reader031.vdocuments.site/reader031/viewer/2022013104/58ae1a6e1a28ab7e4a8b4e9d/html5/thumbnails/26.jpg)
• Naredno predavanje: Utorak 27.10.2015
• http://www.slideshare.net/NerminSehic/php-za-pocetnike-predavanje-6