Professional Documents
Culture Documents
Agenda
Šta je PHP? (PHP Hypertext Preprocessor )
• PHP je programski jezik
• Upotrebljiv je u opšte svrhe, ali je odomaćen na
polju web aplikacija
• Svrha mu je dinamičko generisanje sadržaja
web aplikacije, na serveru
• Najčešće se nalazi u kombinaciji Linux, Apache
web server i Mysql (LAMP)
• Jezička sintaksa je bazirana na C-u i perlu
Šta je php
Kako je nastao php?
• 1994 – Rasmus Lerdorf
o Personal Home Page (Tools)
/ Forms Interpreter
o Verzije 1 I 2
• 1997 - Zeev Suraski i Andi Gutmans
o Verzija 3+
• Aktuelna verzija PHP-a je 5.5
• Očekuje se izlazak verzije 7
Na kojim sistemima se može koristiti
• Linux
• Windows
• MacOS
WAMP XAMPP
http://www.wampserver.com/ http://www.apachefriends.org/en/xampp.html
Radno okruženje
Minimum – tekst editor
Notepad++
http://notepad-plus-plus.org/
Dreamweaver *
http://www.adobe.com/downloads/
Eclipse
http://www.eclipse.org/downloads/
Zend Studio *
http://www.zend.com/products/studio/
NuSphere *
http://www.nusphere.com/download.php.ide.htm
Jetbrains PHP Storm *
Http://www.jetbrains.com/phpstorm/
Sublime text
http://www.sublimetext.com/
Prvi php program...
• Php program se čuva u obliku teksta i u tom obliku se startuje
• Da bi php program bio startovan, neophodno je da bude tretiran od strane
php interpretera
• Php interpreter je program koji moramo imati kako bismo startovali php kod
• Da bi proverili da li php interpreter postoji na računaru, u konzoli kucamo php
(eventualno se može dodati switch –v ili -i)
• Nakon (pokušaja) izvršenja komande, znaćemo da li php postoji na sistemu.
Putanja na kojoj
se nalazi php
• Takođe, apache web serveru moramo reći: “tretiraj sve zahteve sa ekstenzijom
php na specifičan način”:
• Nakon ovih izmena, apache web server će moći da startuje php aplikacije.
• Postavlja se pitanje, šta je onda to što web programiranje čini komplikovanim?
Kako funkcioniše i šta radi web server?
• Skladišti web stranice
• Prihvata i prosleđuje korisničke pozive
• Šalje (HTML) sadržaj putem HTTP protokola
Život web dokumenta
• Kako je moguće da kucanjem sledećeg u adresi browsera...
?
Život web dokumenta
• Browser, u mnoštvu sadržanih opcija ima dve ključne:
o HTML parser / renderer (grafički formatira sadržaj
pomoću html tagova)
o User Agent (komunicira sa web serverom u ime korisnika)
• Bez ovih opcija, browser nije browser (ali je i dalje klijent).
Ali, može postojati program koji nema obe opcije. Na primer,
sledeći programi nemaju HTML parser, ali imaju user agent-a:
Šta radi HTML parser?
• HTML parser / renderer grafički predstavlja HTML kod
• Na primer, sledeći fajl, po otvaranju u browseru...
HTTP Request
GET / HTTP/1.1 socket
Host: www.it-akademija.com ip adresa + port
(npr: 71.25.30.10:80)
HTTP Response
HTTP/1.1 200 OK
Host: www.it-akademija.com
Vežba 1 – Analiza http zahteva i odgovora
• Aktivirajte konzolu
google chrome-a
(kombinacijom tastera
ctrl+shift+i)
• Odaberite network
paletu
• Otvorite neku stranu
• Pogledajte
novokreirani sadržaj
paleta Headers i
Response
Lokalni vs globalni server
• Web server može biti lokalni ili globalni
• Ova podela ne mora da ima veze sa samim serverom, već sa mrežnim rutiranjem
• Najčešće se, za potrebe izgradnje web
aplikacije, koristi lokalni web server.
Tačnije, lokalna adresa (localhost)
• Localhost je naziv kojim se računaru
na kome se trenutno nalazimo,
pristupa putem mreže
• Wamp server podrazumevano sadrži
web server i sve funkcioniše bez
dodatnih podešavanja, pa web serveru
možemo pristupiti kucanjem lokalne adrese
u web browseru: http://localhost
• (ako ne radi, pokušajte 127.0.0.1 umesto localhost)
Distribucija fajlova pomoću web servera
• Da bi sopstvenom fajlu mogli da pristupimo putem web servera, treba da ga
kopiramo u direktorijum dokumenata web servera. U podrazumevanoj apache
konfiguraciji koja dolazi sa wamp-om, ovaj direktorijum je: c:/wamp/www.
• Na razlicitim distribucijama apache-a i operativnih sistema, ovaj direktorijum
može biti drugačiji, ali se takođe može podesiti u konfiguracionom fajlu
apache web servera
• Jednostavnim kopiranjem fajla u pomenuti direktorijum, fajl će biti dostupan
putem web servera
.php .txt
browser browser
server
interpreter server
.php .txt
Vežba 2
• Napravite tri fajla na web serveru. Jedan treba da bude
tekstualni dokument (.txt), drugi da bude html dokument
(.html), a treći php dokument (.php)
• Otvorite sva tri dokumenta u browseru
• Jako je važno da ni jedan od tri dokumenta ne preuzmete
direktno sa fajl sistema, već isključivo putem web servera
• Ispravno
je:
PHP sintaksa – prazne linije
• Prazan prostor nije relevantan
• Levi i desni kod daju isti rezultat na izlazu
PHP sintaksa – pravila kodiranja
• Promenljive počinju sa znakom string ($) • Ispravan kod
• Prvi znak iza znaka string
sme biti samo slovo
ili nespecijalni karakter
• Neispravan kod
PHP sintaksa – deklaracija varijabli
• DA
$x
$mojaVarijabla
$_varijablaX
• NE
$1mojaVarijabla
$\mojaVarijabla
PHP sintaksa – deklaracija promenljivih
• Reči u promenljivima dobro je razdvajati sa donjom crtom
moja_varijabla ili velikim slovom mojaVarijabla (camel case)
• Treba izbegavati neintuitivne ili predugačke nazive promenljivih
• Ispravni nazivi promenljivih
Završen blok
PHP sintaksa – definisanje klasa
• Klase je dobro pisati velikim početnim slovom, a funkcije malim
Klasa
Funkcija
Komentarisanje koda
• Jako dobrom praksom, smatra se komentarisanje koda
• Pod komentarisanjem, podrazumeva se objašnjavanje delova koda
ljudskim jezikom
• Komentari se označavaju na specijalan način, kako se php ne bi
zbunio, obzirom da izjave koje sadrže komentari, za njega nisu
razumljive
• Komentari su dobri jer:
o Olakšavaju snalaženje u kodu
o Omogućavaju da se brzo onemogući neki deo koda ali ne i trajno izgubi
o Olakšavaju dokumentovanje koda
• Komentari su neprikosnovena komponenta timskog rada
Implementacija komentara
• Komentare srećemo u dve
forme:
o Jednolinijski
Sve od početka do kraja linije,
biće ignorisano od strane
prevodioca, ali ne i dalje od toga
o Višelinijski
Sve što se nalazi unutar početne i
krajnje oznake komentara se
ignoriše od strane prevodioca
https://bitbucket.org/snippets/vmaric/qeyr67
Vežba 3
• Sledeći program bi trebalo
da prikaže površinu i obim
kruga ali ne funkcioniše
• Potrebno je ispraviti
sintaksne greške u
programu, kako bi
proradio
• Pokušajte da
komentarišete kod i
objasnite šta koja linija
radi
https://bitbucket.org/snippets/vmaric/beEMBL
Vežba 3
• Sledeći program bi trebalo
da prikaže površinu i obim
kruga ali ne funkcioniše
• Potrebno je ispraviti
sintaksne greške u
programu, kako bi
proradio
• Pokušajte da
komentarišete kod i
objasnite šta koja linija
radi
Upotreba alata git
Preuzeti sa adrese: git-scm.com
Još različitih problema sa sintaksom
Php skripte imaju neispravnu
sintaksu. Pokušaj da ih popraviš i
startuješ.
Skripte preuzmi sa git
repozitorijuma
https://vmaric@bitbucket.org/
vmaric/phpex.git
pcex01
Stress i load
• Da bismo bili sigurni da web aplikacija može da podnese očekivani
broj korisnika, neophodno je da je tokom rada više puta tretiramo
stress i load testovima kako bismo bili sigurni da nismo napravili
kritične greške u performansama
• Jednostavan, a efikasan alat kojim se mogu izvršiti ova dva testa, već
postoji u sklopu apache distribucije (nema ga u svim distribucijama).
Ovaj alat se zove apache bench (ab ili ab.exe)
• Da bi izvršili testiranje pomoću apache bench-a, startujemo ga sa
odgovarajućim parametrima (dva ključna prekidača su n – broj
zahteva i c – broj korisnika)
Vežba 4 (pcex02)
• Prethodno dizajniranu prezentaciju sajta za online prodaju dvd-ova je potrebno smestiti na
web server, tako da se ne otvara direktno sa fajl sistema. Prezentacija mora biti spremna
za uvođenje serverske dinamike
Zaključili smo...
• Kojim jezikom se
sporazumevaju web server i
web klijent?
Kojim jezikom se sporazumevaju web server i web klijent?