21 a mvc i codeigniter pdf 76273

Download 21 a Mvc i Codeigniter PDF 76273

Post on 09-Jul-2016

217 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

  • WEB PROGRAMIRANJEPHP

    MVC arhitektura i CodeIgniter

    2012/2013. 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 omogui bri razvoj projekata u odnosu

    na programiranje od nule u istom PHP-u.

    Ovo se postie na taj nain to se prua bogat set klasa za

    najvei broj zadataka koji se uobiajeno postavljaju u razvoju

    savremenih dinamikih sajtova.

    Cilj je da se programerima omogui da se to vie fokusiraju na

    kreativnost, na taj nain da je potrebno to manje koda koji

    treba da neto uradi.

    Takoe je popularan zato to je to jedan od najbrih 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 zaduen za rad sa

    podacima iz baze podataka i njihovu obradu )

    V View (predstavlja podatke koji se prikazuju korisniku. To

    moe biti cela web strana, deo strane, RSS, ...)

    C Controller (predstavlja vezu izmeu 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, omogueno je filtriranje podataka

    zbog poveanja sigurnosti

    Nakon obrade od strane kontrolera, i dobijanja svih podataka od

    Model-a i drugih celina, kontroler vraa traene podatke nazad,

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

    snima, da bi se sa ponovnim zahtevom to bre obradilo

  • Kod standarnog PHP koda

    Root

    index.php

    kontakt.php

    proizvodi.php

    Podfolder, sa dodatnim

    fajlovima

    http://127.0.0.1/index.php

    http://127.0.0.1/proizvodi.php

  • Kod Codeigniter-a

    Root

    index.php

    http://127.0.0.1/index.php/kontakt

    Application

    Controllers Model View

    kontakt.php

    Korisnik

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

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

    Ime kontroleraIme metoda unutar

    kontrolera

    Parametri prozvanog

    metoda

  • U root direktorijumu CodeIgnitera nalaze se folderi:

    application, system i user_guide.

    Folder Application je predvien da sadri datoteke koje

    korisnik treba da pravi ili ih prilagodi svojim potrebama.

    Folder system sadri samu sr frameworka sa glavnim

    klasama potrebnim za njegov rad.

    Folder user_guide sadri uputstva za rad.

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

    poetak rada vrlo bitan.

    U config folderu podeavanja su podeljena po grupama tako

    da je svaka grupa smetena u poseban php fajl.

    U ovim fajlovima podeavanja 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 pokreu zajedno sa sistemom. To

    mogu biti: paketi, biblioteke, helperi, modeli, konfiguracioni fajlovi. Postoje odreene klase zakorienje koje se pokreu automatski pa se ne navode ovde.

    config.php Ovde se konfiguriu osnovne opcije CI-a. Definisanje polaznog urla, index strane, charseta,

    dozvoljenih url karaktera, prefiks za ekstendovane core klase, kod za enkripciju, parametrisesija, cookie-a, globalno XSS filtriranje. Jedna od interesantnih funkcija koja ovde moe da se podesi je rad sa sesijama koje se uvaju u bazi podataka, ime se postie bolja sigurnost ipreglednost istih.

    database.php Postavljaju se podeavanja za povezivanje na bazu podataka sa kojom ce framework raditi.

    Podrane su MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, i ODBC baze podataka.doctype.php Definiu se html doctype koji e se koristiti.routes.php Podeava se interno rutiranje zahteva koji stiu CodeIgniteru. Ukratko korisnik moe da poziva

    odreenu stranu, da dobija odgovor od neke druge, a da toga nije svestan. Takoe ovde se navodi podrazumevani kontroler i strana koja e se koristiti za 404 greku.

    smileys.php Podeavaju se parametri sliica koje e ugraeni smily helper ispisivati.

  • index.php/ nesto je strana kroz koju se framework inicijalizuje to znai da svaki poziv ka sajtu mora poeti sa ovom stranom.

    Ipak je mogue skloniti ovaj sement iz URL-a i na taj nain omoguiti kompaktnije linkove koji se uz to i bolje rangiraju na pretraivaima.

    Prvo u root pored index.php moramo staviti .htaccess fajl sa sledeim sadrajem:

    RewriteEngine OnRewriteBase /proconscale/RewriteCond %{REQUEST_URI} ^ system.*RewriteRule ^ (.*)$ /index.php?/$1 [L] RewriteCond %{REQUEST_URI} ^ application.*RewriteRule ^ (.*)$ /index.php?/$1 [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^ (.*)$ 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, moe imati

    jedan ili vie php fajlova

    Glavna koordinacije je kroz kontroler

    Svi kontroleri koji se piu dolaze od CI_Controller

    Unutar kontrolera moe biti vie nezavisnih funkcija

    Svaka od njih moe ali ne mora imati argumente

    Jako je bitno kako se poziva strana ili funkcionalnost u CI

    Na slian nain dobijaju se i modeli iz CI_Model

  • Napomena: U kontroleru su potrazumevano uitane neke klase kaoto su:

    input slui za dohvatanje post, get ili cookie podataka. output omoguuje controlleru da alje ispis bez korienja view-a load koristi se za uitavanje klasa, modela, biblioteka itd.

  • Kontrolerprva.php

    Bez argumenata

    Sadraj index.php

    stranice je za sada

    nebitan

  • prva.php

    Sa argumentima

  • Bez drugog

    argumenta

  • prva.php

    Podrazumevana

    vrednost

  • prva.php

  • P

    r

    eS

    a

    d

    a

  • __construct()

  • Kontroler

    prva.php

  • Welcome to first page

    Welcome to CodeIgniter!

    Text ...

  • zaglavlje.php

    Ovo je zaglavlje

  • proba.php

    Welcome to CodeIgniter!

    Ovo je parametar $cc

  • Welcome to first page

    Welcome to CodeIgniter!

    Ovo je parametar $cc

  • Helperi su PHP falovi koji sadre PHP funkcije. Specifini su to su dostupni globalno na nivou CodeIgniter aplikacije i to nisu napravljeni u OOP formatu. Mogu se uitavati automatski preko application/config/autoload.php ili sa $this->load->helper('ime') u kontroleru.

    URL helper slui za interakciju rad sa URL-ovima. Neke od funkcija su:

    base_url() vraa osnovni URL sajta bez URI segmenata. current_url() vraa trenutni URL. anchor(uri,naziv,$atr) pravi link prema URI ili URL

    linku(prvi argument), drugi argument je tekst linka, treiopcioni i sadri niz atributa linka kao to je title itd.

    redirect(uri) redirektuje zahtev na eljeni URI ili URL.

  • WEB PROGRAMIRANJEPHP

    MVC arhitektura i CodeIgniter

    2012/2013. dr Nenad Koji