PHP (PHP: Hypertext Preprocessor) je skriptni jezik, namenjen izdelavi dinamičnih in interaktivnih spletnih strani. Koda PHP se običajno izvaja na strežniku — ob vsakem HTTP zahtevku strežnik zažene PHP skripto, ta ustvari HTML (ali drugo vsebino), ki se nato pošlje brskalniku. PHP omogoča generiranje vsebine na podlagi podatkov, dela z obrazci, upravljanje sej in piškotkov, dostop do baz podatkov ter komunikacijo z drugimi storitvami.
Spletne aplikacije, napisane v PHP, lahko nudijo funkcionalnosti, kot so prijave z geslom, upravljanje uporabniških računov, urejanje vsebin in dinamično filtriranje podatkov — stvari, ki bi bile brez strežniškega jezika veliko težje izvedljive. Standardne razširitve datotek za PHP so .php, .php3 ali .phtml, vendar lahko spletni strežnik nastavite tako, da sprejema tudi druge končnice.
Na zasnovo PHP so vplivali jeziki, kot so C, Perl, Java, C++ in celo Python. Fundacija za prosto programsko opremo (Free Software Foundation) ga šteje za prosto programsko opremo.
Kako deluje
PHP teče na strežniku kot interpretiran jezik (v praksi pa ga poganja zbitek komponent, kot je Zend Engine). Ko brskalnik zahteva PHP stran, strežnik (npr. Apache ali Nginx) pokliče PHP proces (mod_php, PHP-FPM ipd.), ta prevede in izvede PHP kodo ter kot rezultat vrne HTML ali drugo vsebino. Pogosti mehanizmi, ki izboljšajo delovanje, so OPcache (predpomnjenje prekompilirane kode) in uporaba podatkovnih predpomnilnikov (memcached, Redis).
Primer zelo preprostega PHP-fragmenta, ki vrne besedilo na strani:
<?php echo 'Pozdravljen svet!'; ?>Tovrstna PHP koda je lahko vdelana znotraj običajnega HTML predloge, kar omogoča dinamično ustvarjanje vsebine.
Praktična uporaba
- Obdelava obrazcev: sprejem in validacija vnosov uporabnikov (registracija, prijava, obrazci za povpraševanje).
- Upravljanje sej in avtentikacija: prijava uporabnikov, nadzor dostopa, varno hrambo sej in žetonov.
- Baze podatkov: povezovanje z bazami (MySQL, MariaDB, PostgreSQL) in izvajanje poizvedb — priporočljivo z uporabo pripravljenih izjav (prepared statements).
- Sistemi za upravljanje vsebin (CMS): WordPress, Drupal, Joomla in mnogi drugi so zgrajeni ali delno integrirani s PHP.
- REST/JSON API-ji: ustvarjanje vmesnikov za mobilne aplikacije ali SPA (single-page applications).
Okviri in orodja
Za hitrejši razvoj in vzdrževanje velikih aplikacij se pogosto uporabljajo ogrodja (frameworks) kot so Laravel, Symfony, CodeIgniter ali Yii. Za upravljanje odvisnosti in paketov je industrijski standard Composer. Ogrodja nudijo prednosti, kot so usmerjanje (routing), ORM, varnostne funkcije in testiranje.
Varnostne smernice
- Uporabljajte pripravljene izjave (prepared statements) ali ORM, da se izognete SQL injection.
- Sistemi za hrambo gesel: vedno uporabljajte funkcije, kot je
password_hash()inpassword_verify(). - Sanitizacija in validacija uporabniških vhodov ter uporaba pravilnega izhodnega kodiranja za preprečevanje XSS.
- Zaščita pred CSRF s tokeni in pravilnimi vsebninskimi glavam (CSP, HSTS).
- V produkciji izklopite prikazovanje podrobnih napak in beležite dogodke v varno lokacijo.
Namestitev in okolje
Najpogostejša kombinacija je LAMP (Linux, Apache, MySQL, PHP) ali LEMP (Linux, Nginx, MySQL/MariaDB, PHP-FPM). PHP se pogosto namešča tudi v kontejnerjih (Docker) ali na upravljanih gostovanjih. Za razvijalce obstajajo lokalna okolja kot so XAMPP, MAMP ali Laragon.
Nasveti za izboljšanje zmogljivosti
- Omogočite OPcache za predpomnjenje prekompilirane PHP kode.
- Uporabljajte predpomnjenje rezultatov zahtevnih poizvedb (Redis, memcached).
- Minimizirajte število poizvedb v bazo in indeksirajte ključna polja.
- Profilirajte aplikacijo (xdebug, Blackfire) in odpravite ozka grla.
Izhod in skupnost
PHP je še vedno zelo razširjen jezik na spletu ter ima veliko skupnost, obsežno dokumentacijo in številne knjižnice. Sodobne različice (PHP 7.x, PHP 8.x) so prinesle velike izboljšave v hitrosti, pomnilniški učinkovitosti in jezikovnih zmožnostih (tipizacija, imenovani parametri, izboljšana obravnava napak, JIT v PHP 8). Zaradi svoje preprostosti, velikega ekosistema in podpore pri ponudnikih gostovanja ostaja PHP praktična izbira za mnoge spletne projekte.