web programiranje php 2 - ci je mvc framework za php programski jezik codeigniter je mvc framework...

Download WEB PROGRAMIRANJE PHP 2 - CI je MVC framework za PHP programski jezik CodeIgniter je MVC framework otvorenog

Post on 04-Sep-2019

1 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • WEB PROGRAMIRANJE PHP 2PHP 2

    MVC arhitektura i CodeIgniter

    2014/2015. dr Nenad Kojić

  • � CI je MVC framework za PHP programski jezik

    � CodeIgniter je MVC framework otvorenog koda koji se koristi za

    izradu web aplikacija

    � Razvijen je u cilju da se omogući brži razvoj projekata u odnosu

    na programiranje od nule u čistom PHP-u.

    � Ovo se postiže na taj način što se pruža bogat set klasa za � Ovo se postiže na taj način što se pruža bogat set klasa za

    najveći broj zadataka koji se uobičajeno postavljaju u razvoju

    savremenih dinamičkih sajtova.

    � Cilj je da se programerima omogući da se što više fokusiraju na

    kreativnost, na taj način da je potrebno što manje koda koji

    treba da nešto uradi.

    � Takođe je popularan zato što je to jedan od najbržih PHP

    frameworka, a to je posledica toga što sam framework koristi

    jako malo resursa.

  • � Preuzeti poslednju veriziju sa sajta

    http://ellislab.com/codeigniter

  • � Raspakovati datoteku, i smestiti je u web server (npr. Pod

    imenom CodeI)

    � Nakon startovanja web servera, i ukucavanja URL adrese

    127.0.0.1/CodeI, dobija se izgled kao na slici

    To je to!!!

  • � M – Model (predstavlja biznis logiku, i zadužen za rad sa

    podacima iz baze podataka i njihovu obradu )

    � V – View (predstavlja podatke koji se prikazuju korisniku. To

    može biti cela web strana, deo strane, RSS, ...)

    � C – Controller (predstavlja vezu između Model-a i View-a. � C – Controller (predstavlja vezu između Model-a i View-a.

    Prepopoznaje http requeste, analizira URL adresu i komunicira sa

    korisnikom)

  • � Ukucavanjem URL adrese od strane autora, dolazi se do faze

    Routinga, koja treba da obezbedi analizu delova URL adrese

    � Pre dolaska do Controllera, omogućeno je filtriranje podataka

    zbog povećanja sigurnosti

    � Nakon obrade od strane kontrolera, i dobijanja svih podataka od � Nakon obrade od strane kontrolera, i dobijanja svih podataka od

    Model-a i drugih celina, kontroler vraća tražene podatke nazad,

    preko View-a, i ako je caching aktivan, deo tih podataka se

    snima, da bi se sa ponovnim zahtevom to brže obradilo

  • � Kod standarnog PHP koda

    index.php

    Podfolder, sa dodatnim

    fajlovima

    http://127.0.0.1/index.php

    Root kontakt.php

    proizvodi.php

    fajlovima

    http://127.0.0.1/proizvodi.php

  • � Kod Codeigniter-a

    index.php

    Korisnik

    Root

    http://127.0.0.1/index.php/kontakt

    Application

    Controllers Model View

    kontakt.php

  • � http://127.0.0.1/index.php/controller/method

    Ime kontrolera Ime metoda unutar

    kontrolera

    � http://127.0.0.1/index.php/controller/method/a/b

    Parametri prozvanog

    metoda

  • � U root direktorijumu CodeIgnitera nalaze se folderi:

    application, system i user_guide.

    � Folder Application je predviđen da sadrži datoteke koje

    korisnik treba da pravi ili ih prilagodi svojim potrebama. korisnik treba da pravi ili ih prilagodi svojim potrebama.

    � Folder system sadrži samu srž frameworka sa glavnim

    klasama potrebnim za njegov rad.

    � Folder user_guide sadrži uputstva za rad.

  • � U folderu application nalazi se folder config, koji je za

    početak rada vrlo bitan.

    � U config folderu podešavanja su podeljena po grupama tako

    da je svaka grupa smeštena u poseban php fajl.

    � U ovim fajlovima podešavanja se nalaze u asocijativnim� U ovim fajlovima podešavanja se nalaze u asocijativnim

    nizovima, čije se vrednosti posle pozivaju prilikom svakog

    poziva frameworku.

  • autoload.php � Ovde se navode komponente koje želimo da se automatski pokreću zajedno sa sistemom. To

    mogu biti: paketi, biblioteke, helperi, modeli, konfiguracioni fajlovi. Postoje određene klase za korišćenje koje se pokreću automatski pa se ne navode ovde.

    config.php � Ovde se konfigurišu osnovne opcije CI-a. Definisanje polaznog urla, index strane, charseta,

    dozvoljenih url karaktera, prefiks za ekstendovane core klase, kod za enkripciju, parametri sesija, cookie-a, globalno XSS filtriranje. Jedna od interesantnih funkcija koja ovde može da se sesija, cookie-a, globalno XSS filtriranje. Jedna od interesantnih funkcija koja ovde može da se podesi je rad sa sesijama koje se čuvaju u bazi podataka, čime se postiže bolja sigurnost i preglednost istih.

    database.php � Postavljaju se podešavanja za povezivanje na bazu podataka sa kojom ce framework raditi.

    Podržane su MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, i ODBC baze podataka. doctype.php � Definišu se html doctype koji će se koristiti. routes.php � Podešava se interno rutiranje zahteva koji stižu CodeIgniteru. Ukratko korisnik može da poziva

    određenu stranu, da dobija odgovor od neke druge, a da toga nije svestan. Takođe ovde se navodi podrazumevani kontroler i strana koja će se koristiti za 404 grešku.

    smileys.php � Podešavaju se parametri sličica koje će ugrađeni smily helper ispisivati.

  • � index.php/ nesto je strana kroz koju se framework inicijalizuje što znači da svaki poziv ka sajtu mora

    početi sa ovom stranom.

    � Ipak je moguće skloniti ovaj sement iz URL-a i na taj način omogućiti kompaktnije linkove koji se uz to

    i bolje rangiraju na pretraživačima.

    � Prvo u root pored index.php moramo staviti .htaccess fajl sa sledećim sadržajem:

    RewriteEngine On

    RewriteBase /proconscale/RewriteBase /proconscale/

    RewriteCond %{REQUEST_URI} ^system.*

    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*

    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php?/$1 [L]

    ErrorDocument 404 /index.php

    � Na kraju u application/config/config.php za $config['index_page'] trebamo staviti vrednost prazan

    string.

  • � Svaki od foledera za realizaciju MVC arhitekture, može imati

    jedan ili više php fajlova

    � Glavna koordinacije je kroz kontroler

    � Svi kontroleri koji se pišu dolaze od CI_Controller� Svi kontroleri koji se pišu dolaze od CI_Controller

    � Unutar kontrolera može biti više nezavisnih funkcija

    � Svaka od njih može ali ne mora imati argumente

    � Jako je bitno kako se poziva strana ili funkcionalnost u CI

    � Na sličan način dobijaju se i modeli iz CI_Model

  • Napomena: U kontroleru su potrazumevano učitane neke klase kao što su:

    � input – služi za dohvatanje post, get ili cookie podataka. � output – omogućuje controlleru da šalje ispis bez korišćenja view-a � load – koristi se za učitavanje klasa, modela, biblioteka itd.

  • Kontroler prva.php

    Sadržaj index.php

    stranice je za sada

    nebitan

  • Bez drugog

    argumenta

  • prva.php

  • P

    r

    e S

    a

    d

    a

  • prva.php

  • Welcome to first page

    Welcome to CodeIgniter!

    Text ...

  • zaglavlje.php

    Ovo je zaglavlje

  • public function proba($a) {

    $this->load->view("zaglavlje");

    echo ("Promenljiva a je $a
    ");

    $x = array('cc' => $a);

    $this->load->view("proba", $x);}

    }

    ?>

    Ovo je parametar $cc

  • Welcome to first pageWelcome to first page

    Welcome to CodeIgniter!

    Ovo je parametar $cc

  • WEB PROGRAMIRANJE PHP 2PHP 2

    MVC arhitektura i CodeIgniter

    2014/2015. dr Nenad Kojić