IZRADA SAJTA za 10 €

Home   FORUM   Toplista   HTML   CSS   JavaScript   PHP   DIZAJN   SEO   Mapa


KONTAKT
izuzetan[at]gmail.com






TOP LISTA SAJTOVA
Igrice
Slike

Primer objektno orjentisanog programiranja

Sad kad smo objasnili pojmove i sintaksu objektno orjentisanog programiranja u PHP-u hajde da vidimo kako se sve to može primeniti na konkretnom primeru izrade prostijeg sajta.

Programirajmo ovaj tutorijal o objektno orijentisanom programiranu kao sajt pomoću objektno orijentisanim programiranjem.

Obzirom da je sajt prost klasa će biti naš sajt, pa će mo klasu i nazvati sajt a stranice sajta u stvari biće objekti:

class sajt {
}

Naš sajt će imati elemente koji će se pojavljivati na svim njegovim stranicama. Ti konstantni elementi su ista tabelarna struktura stranica, isto zaglavlje, podnožje i dizajn stranice pa će mo sve to strpati u jednu promenjljivu pod nazivom $strana. Medjutim postojaće delovi sajta koji su promenjljivi od stranice do stranice. Te promenjljive delove strpajmo u klasu. Ovo je prost sajt pa možemo sve promenjljive delove strpati u jednu klasu jer imamo samo jednu vrstu objekta a to su same stranice, medjutim kod složenijih sajtova promenjljive delove moramo razvrstati po njihovim karakteristikama i napraviti od njih razne vrste objekata. Tako razne vrste objekata ne mogu da grade samo jednu klasu već više klasa itd, itd. Znači u suštini glavna poenta OOP je da se uoče lepo karakteristični objekti i da se lepo razvrstaju po klasama kako bi se izradio efikasan sajt sa što manje objekata i klasa.

Napravimo operaciju klase sa nazivom sadrzaj.

function sadrzaj ($navigacija, $tekst, $naslov){
}

Operacija sadrzaj kao sto vidimo sadrži parametre klase. Ti parametri klase pretstavljaju u stvari elemente našeg sajta koji se menjaju od stranice do stranice (od objekta do objekta) ali i ne moraju da sadrže samo promenjljive delove sajta. U tu svrhu kao primer postavio sam parametar $navigacija koja je ista na svim stranicama sajta. Ostali parametri su promenjljivi od stranice do stranice a to su $tekst - sadržaj sajta i $naslov - naslov veb stranica. Napomena da za pojam naslov se misli na HTML element stranice: <title>naslov neki</title>.

Hajde da sad kreiramo sajt:

Konstantni HTML deo sajta

<?
$strana="
<html><head>
<meta http-equiv=\"Content-Language\" content=\"sr\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1250\">
<title>".$naslov."</title>
</head><body bgcolor=\"#000000\">
<div align=\"center\">
<table border=\"0\" width=\"800\" height=\"550\" bgcolor=\"#ECE9D8\">
  <tr>
    <td width=\"800\" height=\"100\" bgcolor=\"#FF0000\">
       <p align=\"center\"><b>
       <b><font face=\"Arial\" color=\"#FFFF00\" style=\"font-size: 19pt\">
       PHP OBJEKTNO ORIJENTISANO PROGRAMIRANJE</font></b>
    </td>
  </tr>
  <tr>
    <td width=\"800\" height=\"350\">
       <table border=\"0\" width=\"100%\" height=\"349\">
          <tr>
             <td width=\"150\" bgcolor=\"#CFC89C\" valign=\"top\">
                <p align=\"center\"><br>".$meni."
             </td>
             <td width=\"650\" valign=\"top\">
                <p align=\"center\"><br>".$tekst."
             </td>
          </tr>
       </table>
     </td>
   </tr>
   <tr>
     <td width=\"800\" height=\"100\" bgcolor=\"#FF0000\">
       <p align=\"center\"><b>
       <font color=\"#FFFF00\" face=\"Arial\" style=\"font-size: 16pt\">
       HVALA NA POSETI</font></b>
     </td>
   </tr>
</table>
</div></body></html>
";
?>

Obratite pažnju da promenljivu $strana gradimo ovako:

$strana ="html deo 1" . $naslov. "html deo 2" . $meni . "html deo 3" . $tekst . "html deo 4";

Ovaj kod smestimo u fajl na primer html.php

Navigacijski deo

<?
$dugmici="
<a href=\"objektno.php\">Home</a><br><br>
<a href=\"objektno.php?u=Uvod\">Uvod</a><br><br>
<a href=\"objektno.php?u=Klase\">Klase, atributi i operacije</a><br><br>
<a href=\"objektno.php?u=Konstruktori\">Konstruktori</a><br><br>
<a href=\"objektno.php?u=Instanciranje\">Instanciranje</a><br><br>
<a href=\"objektno.php?u=Atributi\">Upotreba atributa klase</a><br><br>
<a href=\"objektno.php?u=Operacije\">Pozivanje operacija klase</a><br><br>
<a href=\"objektno.php?u=Nasledjivanje\">Nasledjivanje</a><br><br>
";
?>

Ovaj deo je navigacija sajta koji se nalazi u levom delu sajta za upravljanje sadržajem. Postavimo taj kod u fajl meni.php

KOD za sadržaj sajta od stranice do stranice

<?
$Uvod = "
       // html sadržaj uvoda
";
$Klase = "
       // html deo sadržaja za naslov Klase
";
$Konstruktori = "
       // html deo sadržaja za naslov Konstruktori
";
$Instanciranje = "
       // html deo sadržaja za naslov Instanciranje
";
$Atributi = "
       // html deo sadržaja za naslov Atributi
";
$Operacije = "
       // html deo sadržaja za naslov Operacije
";
$Nasledjivanje = "
       // html deo sadržaja za naslov Nasledjivanje
";
?>

Ovde nisam pisao HTML deo koda jer bi to mnogo zauzelo mesta ali podrazumevajte da je tu u stvari taj html sadrzaj za svaki od tih naslova. Na kraju ovog dela ću dati link sa koga možete skinuti upakovano sve fajlove koje ovde pravimo kako bi ste mogli da vidite kako sve to funkcioniše i izgleda kad ugradite na host (samo prekopirate folder kog raspakujete na host i linkujete).

Ovaj kod za sadržaj sajta smestićemo u fajl tekst.php

PHP KOD koji koji sadrži programski mehanizam

Upravo ovaj deo je vezan sa objekto orijentisano programiranje. Smestimo kod u fajl objektno.php (ukoliko vam je host prazan onda ga morate imenovati sa index.php ali onda gde god u meni.php naidjete na "objektno" morate zameniti sa "index")

<?
include("meni.php");
include("tekst.php");
$t=$_GET["u"];
if (!$t){
   $t = "Objektno orijentisano programiranje";
   $tekst = "Dobro dosli na nasim stranicama. Zelimo vam uspesno ucenje";
}else{
   $tekst = $$t;
}
$ObjekatSajt = new sajt();
$ObjekatSajt -> sadrzaj($dugmici, $tekst, $t);
class sajt{
   function sadrzaj($meni, $tekst, $naslov){
       include("html.php");
       echo $strana;
   }
}
?>

Znači na početku koda umećemo naše skripte meni.php i tekst.php include izrazom. Mogli smo sve iz meni.php i tekst.php strpati u ovaj fajl medjutim ovako je čitljivije, a i kasnije kada želimo da dodamo još neki deo menija i sadržaja pristupamo ovako brže. Kod je vrlo prost i nije potrebno neko posebno objašnjenje, a dočarava koliko toliko najosnovnije mehanizme objektno orjentisanog programiranja. Znači ukratko pravimo klasu sajt. Ta klasa ima operaciju sadrzaj, operacija sadrzaj ima dinamičke i statične parametre $meni, $tekst i $naslov. Zatim pravimo objekat $ObjekatSajt = new sajt (). I na kraju pozivamo operaciju klase $ObjekatSajt -> sadrzaj($dugmici, $tekst, $t);

Zaključak

Neko će reći da konkretno ovaj naš sajt koji smo izradili može sa manje pisanja izraditi i funkcijskim programiranjem. Naravno, bio bi u pravu jer je ovo jednostavan sajt. Medjutim ako se prave sajtovi složeniji koji imaju ragistraciju, dinamičke delove sajta skoro na svim stranama, raznorazne forme za unos teksta, fajlova ili slika, itd. i pri tome se sadržaj od stranice do stranice ne razlikuje samo po tekstualnom sadržaju već i po dizajnu i po formi, pa i po raznim još elementima, itd. itd. onda itekako skraćuje pisanje sajta OOP.

Medjutim nije samo poenta u dužini pisanja, već i u tome da će se kasnije lako bilo koji programer snaći ako treba neki deo sajta izmeniti ili unaprediti zbog mogućnosti nasledjivanja kao svojstva OOP. Jednostavno OOP treba shvatiti kao lego kockice. Znači lego gockice su različite po svojoj strukturi, veličini, boji, obliku itd i to su ekvivalent objektima. Od tih pojedinačnih lego kockica možemo napraviti veće objekte koje pak medjusobno možemo kobinovati i praviti konačnu gradjevinu. E sad po potrebi jednostavnim nekim većim izmenama možemo čak napraviti potpuno drugačiju gradjevinu itd itd. To sve funcijskim programiranjem nema šanse da se uradi jer ne možemo izvlačiti segmente jer onda se rušu ceo sajt ukoliko ne vodimo računa o nazivima promenjljivih, nazivima funkcja, šta se gde poziva, šta gde vezuje itd. itd. a pri tome imamo 1000 promenjljivih, 300 naših funkcija koje su pozvane možda na 800 mesta u ko zna kojim sve skriptama itd itd. Kod funkcijskih programa jednostavno ako želimo veći deo sajta da unapredimo gotovo je sigurno da je isplativije početi sa programiranjem sajta iznova.

Sve fajlovi koje smo ovde izradjivali, kako bi ste mogli da vidite kako sve to funkcioniše i izgleda kad ugradite na host (samo prekopirate folder kog raspakujete na host i linkujete), možete skinuti OVDE.

Copyright © 2010 BUbaj. Powered By bubaj.com
PHP    PHP sintaksa    Fajl    Niz    String    Funkcija    Objektno programiranje    MySQL    Unos fajla    Datum    Forme    Sesija    Registracija