PHP
Ovaj članak ili njegov dio sadrži zastarjele podatke. |
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, 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 | 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]- ^ "Introduction". PHP Manual. Pristupljeno 15. 11. 2006.
- ^ Lerdorf, Rasmus. "Re: There ARE other scripting languages besides PHP". Slashdot.org.
- ^ "Zend Engine version 2.0: Feature Overview and Design". Zend Technologies Ltd. Arhivirano s originala, 19. 7. 2006. Pristupljeno 17. 9. 2006.
- ^ php.net 2007 news archive
- ^ "Arhivirana kopija". Arhivirano s originala, 31. 3. 2016. Pristupljeno 25. 7. 2007.CS1 održavanje: arhivirana kopija u naslovu (link)
- ^ http://php.net/usage.php
- ^ http://www.php.net/~derick/meeting-notes.html
Preporučena literatura
[uredi | uredi izvor]- Kerner, Sean Michael (13. septembar 2006). "Is PHP The Cure For The 'Broken' Web?". internetnews.com. Arhivirano s originala, 8. 8. 2007. Pristupljeno 25. 7. 2007. Provjerite vrijednost datuma u parametru:
|date=
(pomoć) - Kerner, Sean Michael (31. oktobar 2006). "Microsoft Opens PHP Door". internetnews.com. Provjerite vrijednost datuma u parametru:
|date=
(pomoć) - Sweat, Jason E (2005). Guide to PHP Design Patterns. PHP|architect. ISBN 0-9735898-2-5.
- Alshanetsky, Ilia (2005). Guide to PHP Security. PHP|architect. ISBN 0-9738621-0-6.
- Shiflett, Chris (2005). Essential PHP Security. O'Reilly Media. ISBN 0-596-00656-X.
- Ullman, Larry (2003). PHP and MySQL for Dynamic Web Sites (1st Edition izd.). Peachpit Press. ISBN 0-321-18648-6.
|edition=
sadrži dodatni tekst (pomoć) - Vaswani, Vikram (2007). PHP Programming Solutions. McGraw-Hill. ISBN 0-07-148745-X.
Također pogledajte
[uredi | uredi izvor]Vanjski linkovi
[uredi | uredi izvor]- Programiranje.Org - Zajednica programera
- PHP Arhivirano 2. 5. 2019. na Wayback Machine (bs)
- PHP (sr)
- PHP (hr)
- Niz tutorijala namijenjenih uglavnom početnicima (en)
- Obimni vodiči uglavnom namijenjeni početnicima (bs)
- Par stvari o PHP-u (bs)
- Instalacija i konfiguracija IIS-a za rad sa PHP-om[mrtav link] (sr)
- Zvanična PHP stranica(en)
- Do You PHP? Rasmus Lerdorf(en)
- PHP tutorijali na hrvatskom jeziku[mrtav link]