PHP

Sa Wikipedije, slobodne enciklopedije
Idi na: navigacija, traži
PHP-logo.svg

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 | uredi izvor]

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, promjenivš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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

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 | uredi izvor]

Preporučena literatura[uredi | uredi izvor]

Također pogledajte[uredi | uredi izvor]

Vanjski linkovi[uredi | uredi izvor]