Download - 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
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
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
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
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
1.3 Sistemi za upravljanje Web sadržajima
• Minimum programiranja
• Sistemi otvorenog koda
– Wordpress (najjednostavniji)
– Drupal (zahtevniji sajtovi)
– Joomla – Joomla
2. Jezik PHP
• Istorijat
• Osnovna sintaksa
• Selekcija i iteracija
• Funkcije• Funkcije
• Web forme
• Baze podataka
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
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;
}
}
?>
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;
}
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>";
}
?>
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
?>
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>
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)");
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
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
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
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
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
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
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/