PHP ili Personal Home Page (ili PHP: Hypertext Preprocessor) je jedno od server-side open source rješenja. PHP je reflektivni programski jezik prvobitno dizajniran za pravljenje dinamičkih web stranica.[1] PHP se uglavnom koristi za izvršavanje skripti na serverskoj strani (server-side scripting), ali se može koristiti sa komandnog linijskog interfejsa ili preko samostalne grafičke aplikacije.

Server side scripting predstavlja vid izvršavanja web skripti na webu, a samo mu ime kaže da se izvršava na serveru (suprotno od JavaScript-a koji se izvršava na klijentskoj strani - browseru). PHP je alternativa komercijalnim programskim jezicima (Microsoft ASP/VBScript/JScript, Macromedia ColdFusion, Sun Microsystems JSP/JAVA) i nekomercijalnom CGI-u/PERL-u.

Historija uredi

PHP je napisan kao skup CGI binarnih fajlova u C programskom jeziku od strane danskog/grenlandskog programera Rasmusa Lerdorfa 1994. godine, kako bi zamijenio mali skup Perl skripti koje je koristio za održavanje lične stranice.[2]

Lerdorf je inicijalno napravio PHP kako bi prikazao svoj rezime i kako bi prikupio određene podatke, poput onih o broju posjeta na svojoj stranici. Personal Home Page Tools se pojavio u javnosti 8. juna 1995. godine nakon što ga je Lerdorf kombinovao sa vlastitim Form Interpreter-om kako bi napravio PHP/FI (ovo izdanje se smatra drugom verzijom PHP-a).

Zeev Suraski i Andi Gutmans, dva izraelska razvijača sa Technion IIT-a, su nanovo napisali parser 1997. godine i stvorili bazu za PHP 3, promijenivši ime jezika u rekurzivni inicijalizam PHP: Hypertext Preprocessor. Razvojni tim je zvanično izdao PHP/FI 2 u novembru 1997. godine nakon mjeseci beta testiranja. Javno testiranje PHP 3 je otpočelo, a zvanično puštanje u upotrebu se desilo juna 1998. godine. Suraski i Gutmans su tada započeli novo prerađivanje PHP jezgre, proizvodeći Zend Engine 1999. godine.[3] Također su osnovali Zend Technologies u Ramat Gani (Izrael) koja se bavi upravljanjem razvoja PHP-a.

Maja 2000. godine je izdat PHP 4 sa Zend Engine 1.0. Najskoriji update isporučen od The PHP Group je za stariju seriju PHP 4 koja je do maja 2007. uključivala verzije do 4.4.7. PHP 4 će imati osigurano snabdijevanje sigurnosnim updateima do 31. decembra 2007.[4]

13. jula 2004, izdat je PHP 5 sa novom Zend Engine II. PHP 5 je uključio nove karakteristike poput:[5]

  • Unapređena podrška za objektno-orjentisano programiranje
  • PHP Data Objects nastavak, koji definiše lightweight konzistentni interfejs za pristup bazama podataka
  • Poboljšane performanse
  • Bolja podrška za MySQL
  • Ugrađena podrška za SQLite
  • Integrisana SOAP podrška
  • Podatkovni iteratori
  • Rad s greškama preko izuzetaka

Posljednja stabilna verzija PHP-a je 5.2.3. koja je izdata 1. juna 2007. godine.

Upotreba uredi

PHP se općenito izvršava na web serveru, uzimajući PHP kod kao ulaz, kreirajući web stranice kao izlaz; međutim može se također koristiti za pravljenje skripti sa komandne linije i aplikacije za korisnički interfejs na klijentskoj strani. PHP se može koristiti na većini web servera i na gotovo svakom operativnom sistemu i platformi bez ikakve novčane nadoknade. PHP Group također obezbjeđuje kompletan izvorni kod za korisnike koji grade, podešavaju ili nadograđuju kod za vlastitu upotrebu.

Izvršavanje skripti na serverskoj strani uredi

Originalno dizajniran za kreiranje dinamičkih web stranica, PHP se načelno fokusira na server-side scripting odnosno izvršavanje skripti na serverskoj strani. Izvršavanjem PHP parsera sa web serverom i web browserom, PHP model se može uporediti sa drugim server-side scripting jezicima kao što su Microsoftov ASP.NET sistem, JavaServer Pages (Sun Microsystems) i Ruby on Rails framework, pošto svi oni obezbjeđuju dinamički sadržaj klijentu sa web servera.

Kako bi se direktnije takmičio sa framework pristupom, Zend radi na Zend Frameworku - skupu PHP gradivnih blokova i najboljih praksi u nastajanju (počevši od juna 2006); drugi PHP frameworkci sa istim osnovama uključuju CakePHP, PRADO i Symfony.

LAMP arhitektura je postala popularna u web industriji kao način za plasiranje jeftinih, pouzdanih, skalabilnih i sigurnih web aplikacija. PHP se obično koristi kao P dio u ovoj kompoziciji zajedno sa Linuxom, Apache serverom i MySQL-om, iako se P može odnositi i na Python programski jezik ili Perl.

PHP se može koristiti sa velikim brojem relacionih sistema za upravljanje bazama podataka (RDBMS), izvršava se na svim najpopularnijim web serverima i dostupan je za mnoge različite operativne sisteme. Prilagodljivost znači da PHP ima široku instalacionu osnovu na Internetu; preko 19 miliona internetskih domena su udomljene na serverima sa instaliranim PHP-om.[6]

Primjeri, popularnih server-side PHP aplikacija uključuju: phpBB, WordPress i MediaWiki.

Izvršavanje skripti na komandnoj liniji uredi

PHP također obezbjeđuje komandni linijski interfejs SAPI za razvoj shell i desktop aplikacija, demona, log parsiranja i drugih sistemskih administrativnih zadataka. PHP se sve više koristi na komandnoj liniji za zadatke koji su tradicionalno pripadali Perlu, Pythonu, awk-u ili shell scriptingu.

Aplikacije grafičkog interfejsa na klijentskoj strani uredi

PHP obezbjeđuje povezivanje sa GUI bibliotekama poput GTK+ (sa PHP-GTK), Qt (sa PHP-Qt) i bibliotekama za tekstualni način rada poput ncurses radi olakšanja razvoja šireg opsega aplikacija grafičkog interfejsa za cross platforme.

Sintaksa uredi

PHP se primarno ponaša kao softverski filter. PHP program uzima informacije iz datoteke ili toka (stream) koji sadrže tekst i specijalne PHP instrukcije i izbacuje drugi tok podataka za prikazivanje. Od PHP 4, parser kompajlira ulaz za proizvodnju bytecode-a kojeg obrađuje Zend Engine, dajući poboljšanu performansu od interpreterskog prethodnika. Zend Engine II je u srcu PHP 5.

Školski primjer programa Hello World za PHP izgleda na sljedeći način:

<?php
echo 'Hello, World!';
?>

PHP samo parsira kod unutar svojih delimitera, kao što su <?php i ?>. Sve izvan toga se direktno šalje na izlaz i ne parsira se od strane PHP-a. Gornji primjer je ekvivalentan sljedećem tekstu na izlazu:

Hello, World!

Primarno korištenje ovoga je radi omogućavanja PHP iskazima da budu uklopljeni u HTML dokumente, naprimjer:

<?php
// PHP iskazi ovdje
?>
Regularni HTML ovdje 
<?php
// Više PHP iskaza
?>

Ispred varijabli se dodaje simbol dolara ($), a primitivni tip se ne treba specificirati unaprijed. Za razliku od imena funkcija i klasa, imena varijabli su osjetljiva na veliko i malo slovo (eng.: case sensitive).

Pomoću dvostrukih navodnika (""), kao i heredoc stringova je moguće uklopiti vrijednost varijable u string.

PHP nove linije koda tretira kao whitespace. Iskazi se završavaju tačkom-zarezom (;) osim u nekoliko specijalnih slučajeva.

PHP ima tri tipa sintakse za komentare: /* */ za blok komentare, i // kao i # za inline komentare.

Primjer jednostavne funkcije u PHP-u:

<?php
function imeStranice()
{
echo "Wikipedia - Slobodna Enciklopedija";
}
echo "Ovo je ";
imeStranice();
?>

Rezultat:

Ovo je Wikipedia - Slobodna Enciklopedija

Tipovi podataka uredi

PHP pohranjuje cijele brojeve u rangu koji zavisi od platforme. Ovaj rang je tipično za 32-bitne predznačene cijele brojeve (eng. integer).

Integer varijablama se mogu dodijeliti vrijednosti pomoću decimalne (pozitivne i negatine), oktalne i heksadecimalne notacije. Realni brojevi se pohranjuju u rang specifičan za platformu. Mogu biti specificirani korištenjem floating point notacije ili pomoću dvije forme naučne notacije.

PHP ima urođeni boolean tip, koji je tako i imenovan, slično boolean tipovima u Javi i C++. Korištenjem pravila za konverziju boolean tipova, vrijednosti različite od nule se mogu interpretirati kao true, a nula kao false, kao u Perlu.

Null tip podataka predstavlja varijablu koja nema vijednost. Jedina vrijednost u null tipu podataka je NULL.

Varijable "resursnog" tipa predstavljaju reference na resurse iz vanjskih izvora. Tipično ih kreiraju funkcije iz specifične ekstenzije, a mogu biti obrađivane samo od strane funkcija iz iste ekstenzije. Primjeri uključuju datoteku, sliku i resurse baze podataka.

Nizovi podržavaju i numeričke i string indekse, i heterogeni su. Nizovi mogu sadržavati elemente bilo kojeg PHP tipa, uključujući resurse, objekte, čak i druge nizove. Poredak se čuva u listama vrijednosti i u hash tabelama sa ključevima i vrijednostima, koji se mogu miješati.

Objekti uredi

Osnovne funkcionalnosti objektno orijentisanog programiranja su dodate u PHP3. Upravljanje objektima je upotpunosti prerađeno za PHP 5, što se odrazilo na bolju performansu i više karakteristika. U prethodnim verzijama PHP-a, upravljanje objektima se obavljalo na isti načina kao i sa primitivnim tipovima. Mana ove metode je bila u tome što bi se cijeli objekt prekopirao kada bi se varijabla napunila ili bi se proslijedio metodi kao parametar.

Važni datumi izdavanja uredi

Verzija Datum izdavanja Najvažnije promjene
PHP 1.0 8. juni 1995. Zvanično nazvan "Personal Home Page Tools (PHP Tools)". Prva upotreba imena "PHP".
PHP Version 2 (PHP/FI) 16. april 1996. Od strane svog tvorca smatran za "najbrži i najjednostavniji alat" za kreiranje dinamičkih web stranica.
PHP 3.0 6. juni 1998. Razvoj umjesto jednog uključuje više razvijača. Zeev Suraski i Andi Gutmans nanovo pišu osnovu za ovu verziju.
PHP 4.0 22. maj 2000. Dodan napredniji dvofazni parsiraj/izvrši tag-parsing sistem nazvan Zend engine.
PHP 4.1 10. decembar 2001. Uvedeni superglobali ($_GET, $_SESSION, itd.)
PHP 4.2 22. april 2002. Onemogućavanje register_globals se podrazumijeva
PHP 4.3 27. decembar 2002. Uveden CLI, kao dodatak za CGI
PHP 4.4 11. juli 2005.
PHP 5.0 13. juli 2004. Zend Engine II s novim objektnim modelom.
PHP 5.1 25. novembar 2005.
PHP 5.2 2. novembar 2006. Omogućavanje filterskih ekstenzija se podrazumijeva

Dalji razvoj uredi

PHP 6, u razvoju od jula 2007., ima za cilj neke od PHP 5 nedostataka.[7]

  • Namespace support will be added
  • podrška za izvorni Unicode će biti dodata
  • opcija magic_quotes će biti uklonjena
  • HTTP_*_VARS globalne varijable će biti uklonjene
  • opcija register_globals će biti uklonjena
  • opcija safe_mode će biti uklonjena

Reference uredi

  1. ^ "Introduction". PHP Manual. Pristupljeno 15. 11. 2006.
  2. ^ Lerdorf, Rasmus. "Re: There ARE other scripting languages besides PHP". Slashdot.org.
  3. ^ "Zend Engine version 2.0: Feature Overview and Design". Zend Technologies Ltd. Arhivirano s originala, 19. 7. 2006. Pristupljeno 17. 9. 2006.
  4. ^ php.net 2007 news archive
  5. ^ "Arhivirana kopija". Arhivirano s originala, 31. 3. 2016. Pristupljeno 25. 7. 2007.CS1 održavanje: arhivirana kopija u naslovu (link)
  6. ^ http://php.net/usage.php
  7. ^ http://www.php.net/~derick/meeting-notes.html

Preporučena literatura uredi

Također pogledajte uredi

Vanjski linkovi uredi