Objektno Orijentisano Programiranje u PHP

  • View
    281

  • Download
    12

Embed Size (px)

Text of Objektno Orijentisano Programiranje u PHP

  • 8/11/2019 Objektno Orijentisano Programiranje u PHP

    1/34

    SKRIPTA IZ PREDMETA INTERNET TEHNOLOGIJE

    Objektno orijentisanoprograiranje ! PHP

  • 8/11/2019 Objektno Orijentisano Programiranje u PHP

    2/34

    SADR"AJ

    1 UVOD.............................................................................................................................3

    2 OOP u PHP....................................................................................................................4

    2.1 Objekti...................................................................................................................... 42.2 Klase........................................................................................................................4

    2.3 Atributi i modifikatori.................................................................................................6

    2.4 Metode i arametri.................................................................................................11

    2.! "tati#ke metode......................................................................................................11

    2.6 Ko$kstruktori..........................................................................................................12

    2.% Ko$sta$te...............................................................................................................13

    2.& 'asle(i)a$je..........................................................................................................14

    2.* Prikri)a$je metoda.................................................................................................1&

    2.1+ Abstrakt$e klase.................................................................................................2+

    2.11 ,$terfejs...............................................................................................................21

    2.12 t-is are$t i self.................................................................................................22

    2.13 /uko)a$je i0u0eima..........................................................................................23

    2.14 Koris$e fu$kije..................................................................................................24

    3 Primeri i0 rakse...........................................................................................................26

    3.1 Arraist................................................................................................................. 26

    3.2 /uko)a$je tekstal$im fajlama.................................................................................2%

    3.3 /uko)a$je slikama.................................................................................................2*3.4 /uko)a$je ba0om odataka...................................................................................31

    2

  • 8/11/2019 Objektno Orijentisano Programiranje u PHP

    3/34

    UVOD

    Objekt$o orje$tisa$ $a#i$ rormira$ja ima $e5to drua#iju loiku od roedural$or)obit$o $a#i$a u -u. U objekt$om ristuu m$oi slo7e$i i komliko)a$i 0adai se0$at$o lak5e re5a)aju $eo u sta$dar$om obliku i $e samo to mo7da jo5 5to je i )a7$ijem$oo se lak5e odr7a)aju i me$jaju.

    ,deja u)o(e$ja objekata i klasa 0$at$o ojed$osta)ljuje loiku koda tako(e je i #itlji)iji 0aroramere i m$oo se lak5e odr7a)a. 8la)$e st)ari oko koji- se OOP 9objekt$o orje$tisa$ororamira$je: )rti su objekti i klase. O$e su usko o)e0a$e i samim tim m$oi roramerikoji se r)i ut susre;u sa o)ak)im $a#i$om rada i- #esto me5aju.

    ?. Odo)or bi bio DA. 'ako$ toa bi usledilo ita$je =A #emu o$da slu7i

    objekt$o orije$tisa$o roramira$je>? Odo)or $a o)o ita$je je $e5to o5ir$iji. Ukoliko seradi o jed$osta)$ijim ili ma$jim alikaijama i roramima asolut$o $ema $ikak)e )e0e kojiri$i koristite. Medjutim roblemi $astaju kas$ije kada taj kod treba odr7a)ati i me$jati $a0a-te) klije$ata. Dobro struktuira$ roram $aisa$ koriste;i OO ko$et se 0$at$o lak5eodr7a)a i me$ja. Ukoliko se rime$juju ra)ila dobro kodira$ja i soft)erski ater$i s)akamodifikaija mo7e da se uradi relati)$o jed$osta)$o i lako ma koliko o$a 0a-te)$a i )elikabila. "a drue stra$e u roedural$om roramira$ju st)ari $e idu ba5 tako lako.Proramer s)e mo7e $ara)iti roedural$o ali je ita$je mo7e li kas$ije taj kod odr7a)ati.'isu retki rimeri kada klije$t tra7i $e0$at$e rome$e u kodu 9mi$imal$a rome$afu$kio$al$osti ili #ak rome$a di0aj$a: a da je $ji- $emou;e uraditi i s)e treba isati i0o#etka. @amislite rojekat $a kojem raditite ar mesei i $eosred$o re isoruke klije$t)am ka7e =e i0me$i mi samo o)aj deo umesto o)o $eka radi o)ako? 0$a#i 0a-te)a od )as

    mi$imal$e rome$e u kodu a sob0irom da ste radili roedural$o i $iste o5to)ali ra)ilaroramira$ja dola0i do )eliko roblema i )rlo )ero)at$o je da ;ete morati da i5ete eokod o$o)o. 'ara)$o iskus$i rorameri $e moraju da rade s)e iso#ekta ako je roramleo struktuira$ ali s)akako ;e imati m$oo )i5e osla i komlikaija $eo da su koristili OO$a#i$ rada. Me(utim to $e 0$a#i da je i u OOPu s)e ideal$o i tu ako se $e o5tuju ra)ila)rlo je mou;e da se kod i5e iso#etka $a 0-te) klije$ta $a mi$imal$u rome$u.

    Bo je la)$a i mo7da $aj)e;a reds$ost OOPa u od$osu $a roedural$o. ak5eodr7a)a$je reled$iji kod i loi#$ije o)e0i)a$je e$titetaC

    3

  • 8/11/2019 Objektno Orijentisano Programiranje u PHP

    4/34

    OOP u PHP

    1.1 Objekti

    Objekat mo7e da bude s)e. ")e 5to se i5e u roedural$om re7imu mo7e da se remesti uobjekat. ilo koji e$titet mo7ete se redsta)iti objekt$om. Ukoliko )am je u roramu$eo-od$o da redsta)ite $eku 7i)oti$ju reimo sa $jea mo7ete redsta)iti objektom.Ukoliko 7elite da redsta)ite dr)o 5kolu uliu.... s)e to mo7ete redsta)iti objektom.

    U0e;emo jeda$ rimer reimo treba da rika7emo sa i $ara)i;emo jeda$ objekat 9bi;ere#i $e5to kas$ije o tome kako se kreira objekat: koji sme5tamo u rome$lji)u $pas. Baj asima $eke karakteristike i $eka o$a5a$ja. Od karakteristika mo7emo da i0d)ojimoE du7i$udlake boju dlake )isi$u du7i$u u5iju da li je as 7e$ka ili mu7jak i tako dalje. @$a#ikarakteristike oisuju 7i)oti$ju tj. sa. U objekt$om roramira$ju te karakteristike se$a0i)aju atributi ili olja. @$a#i objekat se sastoji od atributaFolja i o$i oisuju sta$je objekta.

    Drua st)ar koju mo7emo osmatrati je o$a5a$je sa ili $eka rad$ja sa. Bo mo7e da budeE-oda$je tr#a$je laja$je skaka$je ujed i tako dalje. Bako da as ored s)oji- karakteristikaima i o$a5a$je. Bo o$a5a$je re)ede$o $a OO je0ik redsta)ljaju metode. @$a#idola0imo do 0aklju#ka da objekat ima atribute i metode. Atributi oisuju sta$je objekta ametode oisuju rad$ju objekta. U OOP modu to bi iledalo o)akoE

    $pas->boja_dlake= crna; //osta)ljamo da as ima r$u dlaku$pas->visina= 45; //osta)ljamo da je as )isok 4!m$pas->lajanje(); // o0i)amo metudu koja simulara laja$je sa

    $pas->trcanje(); //o0i)amo metodu koja simulira$je tra$je sa

    Kao 5to se )idi objekti o0i)aju atribute i metode tako 5to se r)o $ai5e rome$lji)aobjekta 9$pas: a 0atim se doda 9->: i $a kraju $a0i) metode ili $a0i) atributa. ")e o)osamo o sebi i $ema $eko smisla $eo-od$o je objas$iti i 5ta su klase kako se kreirajuobjekti kako se kreiraju atributi i metode i tek o$da ;e slika o OOP biti $e5to jas$ija.

    1.2 Klase

    Klasu mo7emo s-)atiti kao =fabriku? 0a kreira$je objekata. Klase redsta)ljaju $eku 5emu ili5ablo$ kako ;e se kreirati objekti i kako ;e o$i i0ledati. U klasi defi$i5emo i atribute imetode objekta. O$a bi i0 $a5e rimera i0ledala o)akoE

    classPas{

    pblic$boja_dlake;pblic$visina;

    !nctionlajanje(){

    "!nctiontrcanje(){

    4

  • 8/11/2019 Objektno Orijentisano Programiranje u PHP

    5/34

    ""

    Kao 5to se )idi klase se kreira tako 5to se $ai5e klju#$a re# classi $ako$ toa dola0iroi0)olj$o ime klase u $a5em slu#aju as. 'ako$ te deklaraije ot)ara se )iti#asta 0aradai $a kraju i 0at)ara. ")e 5to se $ala0i i0me(u )iti#asti- 0arada redsta)lja $eku strukturu ilidefi$iiju klase.

    Atributi se defi$i5u )rlo jed$osta)$o r)o se uotrebi klju#$a re# koja uka0uje $a ristu i)idlji)ost atributa pblic9o tome $e5to kas$ije: i $ako$ $je samo se $a0$a#e atributi kaoobi#$e rome$lji)e $boja_dlake ili $visina i tako je budu;em objektu ridotatakarakteristika koju o$ oseduje. Po$a5a$je objekta ili metode se defi$i5u tako 5to se $a)edeklju#$a re# !nction i $ako$ toa sledi $a0i) metode obi#$e 0arade a )iti5aste. Uobi#$im 0aradama se uisuju arametri 9otu$o ide$ti#$o kao i kod obi#$e fu$kiju uroedural$om re7imu: ili mou da budu ra0$e kao u $a5em slu#aju a i0me(u )iti5asti- sedefi$i5e o$a5a$je ili rad$ja koja treba da se i0)r5i $ako$ o0i)a te metode i taj deo i0me(u)iti#asti- 0arada se $a0i)a telo metode.

    Dola0imo sada do ita$ja kako kreirati objekat u0 omo; klase. Bo je jako jed$osta)$o i #i$ise $a slede;i $a#i$E

    $pas = ne#Pas();

    Da bi se kreirao objekat $a)odi se $a0i) objekta koji je roi0)olja$ $pas 0atim sledi 0$akjed$akosti dola0i re0er)isa$a re# ne# i $a kraju $a0i) klase sa ra0$im 0aradama9$ara)$o ra0$e su jer $ema arametara ostoje rimeri i kada se koriste arametri ali otome kas$ije:.

    O)o je $ajjed$osta)$iji i os$o)$i rimer kako se kreiraju klase i objekti i 5ta sadr7e. "ada;emo dati komleta$ rimer kako bi to i0ledaloE

    classPas{

    pblic$boja_dlake;pblic$visina;

    !nctionlajanje(){eco%avav avav%;

    "!nctiontrcanje(){

    eco%trci& trci&%;"

    "

    $pas = ne#Pas();$pas->boja_dlake= %crna%;$pas->visina= 45;$pas->lajanje();eco%'br/>%;$pas->trcanje();

    eco%'br/>%;eco$pas->boja_dlake;eco%'br/>%;

    !

  • 8/11/2019 Objektno Orijentisano Programiranje u PHP

    6/34

    eco$pas->visina;

    $a mo$itoru kao re0ultat o)o koda bi isaloE

    avav avavtri& tri&crna45

    Pre $eo 5to $asta