Personal home page / Hypertekst Preprocessor

Povijest PHP-a

Priča o PHP-u počinje 1995. kada je Rasmus Lerdof iz potrebe da prati broj posjeta na svojoj online biografiji razvio niz CGI (Common Gateway Interface) alata razvijenih u Pearl programskom jeziku. Prije PHP-a, kako ga poznajemo danas,  ovo je bio jedini način da web stranicama unesemo malo dinamike, jer HTML kao takav je samo način prezentacije podataka, bespotrebno je govoriti da razvoj ovakvih aplikacija nije bio lagan. U daljnjem razvoju PHP-a postojeći programi su ponovno napisani kao niz binarnih izvršnih datoteka napisanih u C progrmaskom jeziku te dodani elementi za pristup bazama podataka i radu sa web formama. Ovaj skup alata je nazvan Personal Home Page / Forms Interpreter (PHP/FI).

Ovaj programski jezik smo mogli koristiti za razvoj jednostavnih web aplikacija. Kasnije PHP se preimenovao u PHP: Hypertekst Preprocessor, rekurzivni akronim koji upravo opisuje što je PHP. Naime PHP je prvi programski jezik koji je bio ugrađen (embedded) unutar HTML stranica za razliku od, recimo Pearla, gdje web stranica kao takva ne postoji već je generirana, te nakon toga isporučena klijentu, PHP interpreter interpretira sekcije PHP koda unutar HTML stranice mijenjajući njen sadržaj i na kraju generirajući konačni sadržaj.

Na osnovu ovoga možemo reći da po definiciji nije programski jezik nego skriptni jezik. Danas ne možemo reći da je Pearl prethodnik PHP-a jer je PHP u potpunosti ponovno napisan u C programskom jeziku. PHP je besplatan software izdan pod PHP licencom i u potpunosti je neovisan o operacijskom sustavu, tj. može se izvršavati na bilo kojem operacijskom sustavu (Linux, Windows, Mac, …).

Također, PHP je vrlo modularan kada su u pitanju ekstenzije, bilo da su pisane u C-u (PECL) ili niz klasa u PHP-u (PEAR). Danas je PHP izrastao u jako popularan skriptni jezik za razvoj pa čak i jako kompleksnih projekata i u kombinaciji sa MySQL-om postao jako popularan alat (force to be reckoned with).

Razvoj velikih aplikacija u PHP-u

Uz sve rečeno, bilo tko da je pokušao napraviti bilo kakvu aplikaciju u PHP-u uvjerio se da je razvoj aplikacija u PHP-u prilično jednostavan, kao takav PHP spada u jedan od onih programskih jezika koje je jednostavno naučiti, ali jako teško savladati (easy to learn, hard to master). Ponekad razvoj velikih aplikacija zahtjeva određenu metodologiju razvoja, poznavanje osnovnih principa programskog inžinjerstva.

Veoma jednostavno je upasti u situaciju gdje više vremena provodite ispravljajući pogreške nego na samu izradu aplikacije. Ne radi se tu samo o poznavanju strukture programskog jezika jer koliko god dobro poznavali programski jezik ipak smo ljudi, a ljudi griješe. Iako u tome nema ništa loše, neke greške se skupo plaćaju, barem u profesionalnom razvoju aplikacija. Da bismo izbjegli takvu situaciju ponekad je bolje koristiti pristup (think twice code once) “Čitaj dva puta, kodiraj jednom”. Još jedan princip koji postaje očit tek onda kada razvijate aplikacije većeg opsega su obrasci ili poznata tuđica za ovu riječ je patterni (patterns/design patterns), od kojih ćemo spomenuti MVC.

Sam akronim MVC znači Model-View-Controller. Model se sastoji od podataka i metoda za upravljanje tim podacima, controller služi kao posrednik u svemu tome pretvarajući ulazne podatke dobivene od korisnika u oblik pogodan za model i sve to pretvarajući u vizualnu prezentaciju (view) koja se isporučuje korisniku.

Zašto je MVC koristan? Zamislimo situaciju u kojoj Vi razvijate aplikaciju za klijenta koji želi da u xml datoteku pohrani svoj telefonski imenik. I Vi ste uradili tu aplikaciju i sve savršeno funkcionira, ali sada korisnik uvidjevši kako je ta aplikacija odlična, on bi želio nadograditi tu aplikaciju dodatnim funkcionalnostima; recimo koristiti bazu podataka. Kako je ipak 2012., on bi htio mobilnu verziju. Od svih tih specifikacija sličnost u aplikaciji je u 80% koda, razlika je u samo par klasa koje morate implementirati. U tom slučaju, ukoliko nismo odvojili prezentaciju (UI) od kontrole (programska logika), od samih podataka (xml, baza podataka), definitivno ćemo provesti dosta vremena da bismo došli do zaključka.

Kako bi bilo bolje da smo, recimo napravili model korisnika koji će naslijediti xml kontrolu i koji će tog korisnika spremati u xml datoteku, a ukoliko se radi o bazi podataka tada će model korisnika naslijediti niz funkcionalnosti koje će tog korisnika spremati u bazu podataka. Dakle, promjena prezentacije (pogleda – view) se samo tiče prezentacije i ne zahtjeva promjenu modela, isto vrijedi za model i za kontroler.

Na taj način osiguravamo da ono što smo napravili možemo ponovo iskoristiti (reusability) te imati mogućnosti nadogradnje dodatnim funkcionalnostima (extensibility). MVC je jako sličan kognitivnom načinu razmišljanja koji ima čovjek i pomaže nam da stvorimo mentalni model cjelokupnog sustava i na taj način osigurava, ne samo da mi shvatimo, nego bitan aspekt u razvoju aplikacija je i kako drugi shvataju naš kod.

Autor

Tehnografija je tehnološki blog koji svakodnevno donosi novosti iz društvenih mreža, internet startupa, mobilnih tehnologija, zanimljivih tehnoloških događaja te operativnih sistema. No, to nije sve. Kvalitetne recenzije, i jednostavni tutorijali će vam pokazati da svijet Interneta uopće nije tako složen, kako izgleda na prvi pogled.