piwt 07-3 razvoj php aplikacije

21
Razvoj PHP Web aplikacija dr Vladislav Miškovic [email protected] Fakultet za informatiku i računarstvo PRAKTIKUM - INTERNET I WEB TEHNOLOGIJE 2013/2014

Upload: larousse

Post on 24-Dec-2015

13 views

Category:

Documents


4 download

DESCRIPTION

PhP

TRANSCRIPT

Page 1: PIWT 07-3 Razvoj PHP Aplikacije

Razvoj PHP Web aplikacija

dr Vladislav Miš[email protected]

Fakultet za informatiku i računarstvo

PRAKTIKUM - INTERNET I WEB TEHNOLOGIJE

2013/2014

Page 2: PIWT 07-3 Razvoj PHP Aplikacije

Sadržaj

1. Razvojna okruženja za izgradnju PHP aplikacija

2. Jezik PHP

3. Razvojno okruženje CodeIgniter

4. Razvojno okruženje Zend4. Razvojno okruženje Zend

5. Razvojno okruženje CakePHP

Page 3: PIWT 07-3 Razvoj PHP Aplikacije

1. Razvojna okruženja

za izgradnju PHP aplikacija

1. Integrisana razvojna okruženja

2. Programska razvojna okruženja i biblioteke

3. Sistemi za upravljanje Web sadržajima

Page 4: PIWT 07-3 Razvoj PHP Aplikacije

1.1 Integrisana razvojna okruženja

• Projektovanje i

programiranje

– Visual Studio 2010/2012/2013

– NetBeans

• Dizajn Web sajtova i • Dizajn Web sajtova i

programiranje

– Adobe Dreamweaver

– Microsoft Expression Web

Page 5: PIWT 07-3 Razvoj PHP Aplikacije

1.2 Programska razvojna okruženja i

biblioteke

• Efikasnije od tradicionalnog

programiranja

• Uvode standarde (MVC), ali

i sopstvene konvencije

kodiranjakodiranja

– Zend Framework 2

– CakePHP

– CodeIgniter

– Simphony

Page 6: PIWT 07-3 Razvoj PHP Aplikacije

1.3 Sistemi za upravljanje Web sadržajima

• Minimum programiranja

• Sistemi otvorenog koda

– Wordpress (najjednostavniji)

– Drupal (zahtevniji sajtovi)

– Joomla – Joomla

Page 7: PIWT 07-3 Razvoj PHP Aplikacije

2. Jezik PHP

• Istorijat

• Osnovna sintaksa

• Selekcija i iteracija

• Funkcije• Funkcije

• Web forme

• Baze podataka

Page 8: PIWT 07-3 Razvoj PHP Aplikacije

Istorijat

• Nastao je 1994. godine kao jezik za kreiranje ličnih Web

sajtova (Presonal Home Page Tools)

– Jezik je proširen je za rad s bazama podataka i dobio naziv Forms

Interpreter, a daljim proširenjima, po ugledu na jezike Perl i C, nastaje

PHP/FI 2.0

– današnja verzija serverskog jezika dobija 1998. godine naziv – današnja verzija serverskog jezika dobija 1998. godine naziv

PHP:Hypertext Preprocessor i oznaku PHP 3.0

– verzija su PHP 4 nastaje 1999. godine

– potpuno prerađen 2004. godine u verziju PHP 5 (Zend Engine 2.0)

• PHP fajlovi (.php) sadrže tekst, HTML, CSS, Javascript i PHP

kod

Page 9: PIWT 07-3 Razvoj PHP Aplikacije

Osnovna sintaksa

• Promenljive

– ime počinje znakom $, sledi

slovo ili _, nakon čega

alfanumerički karakteri i _

– velika i mala slova se razlikuju

($x nije $X)

<?php

class Car

{

var $color;

function Car($color="green")

{

$this->color = $color;($x nije $X)

– dodeljena vrednost definiše

tip promenljive

– lokalne, globalne i statičke

• Izrazi

• PHP objekti, pristup

–$objekt -> svojstvo ili metod

$this->color = $color;

}

function what_color() {

return $this->color;

}

}

?>

Page 10: PIWT 07-3 Razvoj PHP Aplikacije

Selekcija

if (uslov) {

blok koda;

} elseif (condition) {

blok koda;

} else {

switch (n) {

case label1:

blok koda za n=l1;

break;

case label2:

blok koda za n=l2;

blok koda;

}

blok koda za n=l2;

break;

...

case labeln:

blok koda za n=ln;

break;

default:

blok koda za n različito od l1..l

n;

}

Page 11: PIWT 07-3 Razvoj PHP Aplikacije

Iteracija

while (uslov) {

blok koda;

}

do {

blok koda;

foreach ($array as $value) {

blok koda;

}

Primer:<?phpblok koda;

} while (uslov);

for (p. brojač; k. brojač; inkrement) {

blok koda;

}

<?php

$boje = array("crvena", "zelena",

"plava");

foreach ($boje as $boja) {

echo "$boja <br>";

}

?>

Page 12: PIWT 07-3 Razvoj PHP Aplikacije

Funkcije

• PHP procedura:

function nazivFunkcije() {

blok koda;

}

• PHP funkcija koja vraća vrednost:

function nazivFunkcije() {

<?php

$x=100;

$y=200;

function myTest() {

global $x,$y;function nazivFunkcije() {

blok koda;

return izraz;

}

global $x,$y;

$y=$x+$y;

}

myTest(); //procedura

echo $y; // rezultat je 300

?>

Page 13: PIWT 07-3 Razvoj PHP Aplikacije

Web forme

• Primer: klijentska Web forma s dva polja, koja prenosi unesene vrednosti serverskoj proceduri dobardan.php preko polja $_POST (ili $_GET)

<html>

<body>

<form action="dobardan.php" method="post">

Name: <input type="text" name="name"><br>

E-mail: <input type="text" name="email"><br>E-mail: <input type="text" name="email"><br>

<input type="submit">

</form>

</body>

</html>

• dobardan.php

<html>

<body>

Welcome <?php echo $_POST["name"]; ?><br>

Your email address is: <?php echo $_POST["email"]; ?>

</body>

</html>

Page 14: PIWT 07-3 Razvoj PHP Aplikacije

Baze podataka

• Povezivanje s bazom podataka

$con = mysqli_connect(host,username,password,dbname);

(ili preko ODBC: $con = odbc_connect(dsn,username,password);)

• Pristup podacima - upiti

$result = mysqli_query($con,"SELECT * FROM Zaposleni");

while($row = mysqli_fetch_array($result)) {

echo $row['Ime'] . " " . $row['Prezime'];

echo "<br>";

}

• Ažuriranje podataka

mysqli_query($con,"INSERT INTO Zaposleni(Ime, Prezime,

JMBG) VALUES ('Petar', 'Petrović',0101979000001)");

Page 15: PIWT 07-3 Razvoj PHP Aplikacije

3. Razvojno okruženje CodeIgniter

1. Osnovna svojstva

2. Struktura Web aplikacije (MVC)

3. Osnovne strukture

4. Pristup bazama podataka4. Pristup bazama podataka

5. Unos i ažuriranje podataka pomoću Web formi

Page 16: PIWT 07-3 Razvoj PHP Aplikacije

3.1 Osnovna svojstva

• CodeIgniter je okruženje (okvir, framework) za razvoj Web

aplikacija u jeziku PHP

– skup programskih biblioteka za najčešće zadatke i jednostavan interfejs

– omogućava brži razvoj aplikacije nego klasično kodiranje

– relativno kratak kod i veoma dobre performanse– relativno kratak kod i veoma dobre performanse

– kompatibilan je s različitim verzijama PHP

– potrebno minimalno konfigurisanje

– ne zahteva korišćenje komandne linije

– ne podrazmeva posebna pravila kodiranja niti učenje jezika za kreiranje

templejta (iako postije šabloni i analizator šablona)

– ima preglednu i detaljnu dokumentaciju

Page 17: PIWT 07-3 Razvoj PHP Aplikacije

3.2 Struktura Web aplikacije (MVC)

• Koristi arhitekturni obrazac MVC

(Model-View-Controller)

– Model

• predstavlja strukture podataka i

obično sadrži funkcije za ažururanje

podataka i pristup podacima u bazi

View – View

• informacije koje će se prikazati

korisniku - Web stranica ili njena

komponenta (header, footer, RSS

itd.)

– Controller (s)

• posrednik između modela i prikaza

(Model-View) ili drugih resursa

neophodnih za obradu HTTP zahteva

i generisanje Web stranice

17

Page 18: PIWT 07-3 Razvoj PHP Aplikacije

Ilustracija:

izvršavanje CodeIgniter aplikacije

1. Stranica index.php je front Controller;

inicijalizuje osnovne resurse za rad

okruženja CodeIgniter

2. Komponenta Router proverava HTTP

zahtev da ustanovi šta je neophodno

preduzeti (ako već postoji u keš fajlu,

odgovor se šalje direktno Web čitaču, bez

izvršavanja koda)izvršavanja koda)

3. Pre pokretanja kontrolera aplikacija, vrši

se bezbednosna provera filtriranjem HTTP

zahteva i podataka koje je poslao korisnik

4. Application Controller puni resurse

neophodne za obradu konkretnog

zahteva - model, biblioteke, dodatke itd.

5. Finalni View se priprema (rendering) za

prikaz u Web čitaču (ako je uključeno

keširanje, prethodno se smešta u keš)

18

Page 19: PIWT 07-3 Razvoj PHP Aplikacije

4. Razvojno okruženje Zend

• Zend Studio - razvojno

okruženje za PHP

(komercijalni IDE) – http://static.zend.com/topics/studio-

10/studio10-overview-video-window.html

• Zend Framework 2.0• Zend Framework 2.0

– MVC arhitektura aplikacije

– modularna struktura koda

– standardni folderi

• config - konfiguracija modula

• src - programski kod modula

• view - prikazi koje koriste moduli

– razvoj počinje od skeleta koda

aplikacije

Page 20: PIWT 07-3 Razvoj PHP Aplikacije

5. Razvojno okruženje CakePHP

• Programsko okruženje za

brzi razvoj PHP aplikacija

– MVC arhitektura aplikacije

– razvijen po ugledu na

okruženje Ruby on Rails

– razvoj počinje od skeleta

aplikacije

– Cake Development Corporation

Page 21: PIWT 07-3 Razvoj PHP Aplikacije

Literatura

1. Gilmore J., Beginning PHP and MySQL: From Novice to Professional,

Fourth Edition, Apress, 2010

2. Hollosi A., Integrating PHP with Windows, Microsoft Press, 2012

3. Pitt C., Pro PHP MVC, Apress, 2012

4. Upton D., CodeIgniter for Rapid PHP Application Developmentr, Packt

Publishing, 2007Publishing, 2007

5. Porebski B., Przystalski K., Nowak L., Building PHP Applications with

Symfony, CakePHP, and Zend Framework, Wiley Publishing, 2011

6. http://www.w3schools.com/

7. http://ellislab.com/codeigniter

8. http://framework.zend.com/

9. http://cakephp.org/