Razvoj aplikacije
5.1 Predstavitev orodij
PHP– kot pravita Kevin Ttroe & Peter MacIntyre v knjigi [26], je jezik PHP namenjen pisanju kode na strani streˇznika in je bil originalno narejen kot jezik za oblikovanje dinamiˇcnih spletnih strani, za kar je ˇse vedno najprimernejˇsi.
Za generiranje HTML-vsebine potrebujemo PHP-razˇclenjevalnik in spletni streˇznik, skozi katerega se poˇsiljajo kodirane datoteke. PHP se uporablja tudi za generiranje dinamiˇcne vsebine s povezavo s podatkovno bazo.
V njegovo uporabo nas je prepriˇcalo dejstvo, da je jezik zdruˇzljiv s ˇstevilnimi drugimi jeziki (HTML, JavaScript) in ga z njimi z lahkoto kombiniramo. To nam je omogoˇcalo, da smo lahko vnaprej pripravljeno HTML-predlogo sple-tne vsebine v PHP iteraciji vkljuˇcevali in po potrebi tudi spreminjali podatke, ki smo jih s pomoˇcjo poizvedbe pridobili iz podatkovne baze.
Naslednja pozitivna lastnost, ki nas je prepriˇcala v njegovo uporabo, je velika skupnost, ki ga uporablja. Ker ne gre za nov programski jezik
(pred-35
stavljen je bil leta 1994), ima veliko preverjenih programskih reˇsitev, ki so nastale skozi leta, hkrati omogoˇca povezavo tudi s sodobnimi orodji. Dej-stvo, ki govori v prid njegovi uporabi, je tudi to, da skoraj 79 % vseh spletnih strani temelji na njegovi uporabi[1].
Za dostop do podatkovne baze smo uporabili vgrajen razredPDO (PHP Data Objects). Kot v knjigi [14] pravijo Rasmus Ledorf, Kevin Tatroe in Peter MacIntyre, gre pravzaprav za abstraktno razˇsiritev podatkovne baze, ki podpira povezavo praktiˇcno z vsemi poznanimi podatkovnimi bazami. Pred-nost te razˇsiritve je, da omogoˇca pripravo poizvedenih stavkov vnaprej (pre-pare statements) in ˇsele nato njihovo dejansko izvedbo. To nam omogoˇca, da uporabimo rezervirano mesto (positional placeholder) – mesto vrednosti spre-menljivke oznaˇcimo z “?”, ki predstavlja rezervirano mesto, ki je pri izvedbi poizvedbe nadomeˇsˇcena z vrednostmi iz tabele, ki jo podamo v argumentu.
Za upravljanje z nizi in prepreˇcevanje vrivanja kode (sql injections) smo uporabili vgrajene PHP-funkcije (String Functions), kot je htmlspecialchars [33], ki spremeni posebne znake (special characters) v nizu. Zamenja jih z njihovimi entitetami s tem, da odstrani HTML-znaˇcke, s ˇcimer pomaga pri obrambi pred preprostimi napadi na strani streˇznika.
JavaScript je, kot pravi Kevin J. Theisen [30], jezik za skriptiranje, kar pomeni, da se tradicionalno tolmaˇci med izvajanjem in ni pred prevedena v bitno kodo. V praksi je njegov glavni namen posodobitev izvajanja aplikacije, ki je tipiˇcno napisana v drugem programskem jeziku, ki je raztolmaˇcen in iz-vajan v realnem ˇcasu. Obstajajo trije naˇcini izvajanja programske kode Java-Script. Prvi je preko brskalnikove konzole, drugi je z vkljuˇcenjem kode nepo-sredno v DOM (Document Object Model), z uporabo znaˇck “<script></script>”
in tretji je z uvozom JavaScript izvorne datoteke v spletno stran, tipiˇcno z .js konˇcnico.
JavaScript je jezik brez podatkovnih tipov, kar pomeni, da tolmaˇca ne zanima, kateri podatkovni tip je dodeljen spremenljivki, dokler izraza ne preveri.
JavaScript knjiˇznica jQuery, katere glavni namen je zmanjˇsati koliˇcino JavaScript kode in jo narediti preglednejˇso. Uporablja se za spreminjanje in urejanje kode HTML-DOM in CSS, za uˇcinke in animacije ter uporabo klicev AJAX (za kar smo jo v veˇcji meri uporabili tudi v svoji aplikaciji). AJAX (Asynchronous JavaScript and XML) se uporablja za nalaganje podatkov v ozadju in njihovo prikazovanje na strani brez osveˇzevanja strani. To doseˇze z asinhronimi HTTP-zahtevami (GET in POST), ki jih poˇslje na oddaljeni streˇznik. Kot odgovor prejme podatke v poljubnem podatkovnem formatu (HTML, XML, JSON), ki jih potem s pomoˇcjo jezika JavaScript (Jquery) dinamiˇcno prikaˇze na spletni strani.
HTML (Hypertext Markup Language) je protokol XML (Extensive Markup Language), ki opredeljuje DOM. DOM predstavlja postavitev in la-stnosti, ki opredelijo podatke, predstavljene na spletni strani [30].
CSS (Cascading Style Sheets) predstavlja uˇcinkovit in zmogljiv naˇcin upravljanja upodobljenih elementov v DOM-u, s pomoˇcjo izbirnih razredov za dodajanje slogov in zdruˇzevanje podatkov [30].
MySQL je odprto-kodni sistem za upravljanje relacijskih podatkovnih baz, ki temeljijo na jezku SQL (Structured Query Language) v lasti Oracla. Za sistem MySQL smo se odloˇcili, ker je to najbolj priljubljen sistem, ki se upo-rablja v povezavi z jezikom PHP, je hiter, zanesljiv in preprost za uporabo, uporablja standardno sintakso SQL, je brezplaˇcen in teˇce na streˇzniku [21].
Spletni streˇznik je raˇcunalnik, ki shranjuje programsko opremo spletnega streˇznika in pripadajoˇce datoteke spletne strani. Povezan je s spletom in nudi fiziˇcno povezavo za izmenjavanje podatkov z napravami, ki so prikljuˇcene na splet.
V programskem smislu nudi spletni streˇznik ˇstevilna orodja za nadzor uporabniˇskih dostopov do gostujoˇcih datotek. HTTP-streˇznik je lahko
na-slovljen prek imen domen spletnih strani, ki jih hrani in prikaˇze vsebino teh spletnih strani na napravah konˇcnih uporabnikov [3]. V podjetju so nam za testno uporabo naˇse aplikacije omogoˇcili uporabo spletnega streˇznika Ser-vage.
Domena je identifikacijski niz, potreben za objavo in dostop aplikacije na spletu. Je del spletnega naslova (URL), preko katerega je mogoˇc dostop do spletne aplikacije. V naˇsem primeru smo dobili testno za uporabo na voljo pod-domeno domene, ki je v lasti podjetja, za katerega smo aplikacijo razvili.
phpMyAdmin je brezplaˇcno programsko orodje, napisano v jeziku PHP, in je namenjeno upravljanju MySQL podatkovnih streˇznikov. Z njim je moˇzno izvajati veˇcino administrativnih nalog, kot je ustvarjanje podatkovnih baz, izvajati poizvedbe in ustvariti raˇcune uporabnikov[27].
PowerDesigner je orodje, ki ga proizvaja Sybase in je namenjeno modeli-ranju razliˇcnih modelov. V svojem primeru smo ga uporabili za modeliranje fiziˇcnega modela podatkovne baze, pretvorbo fiziˇcnega v logiˇcni model in kreacijo MySQL podatkovne baze, samodejno iz logiˇcnega modela.
Total Commander je upravitelj datotek za operacijski sistem Windows.
Ima opcijo, da vzpostavi povezavo FTP (File Transfer Protocol), s katero smo prenaˇsali datoteke iz lokalnega okolja (raˇcunalnik) na spletni streˇznik.
VisualStudio Code je integriano razvojno okolje (IDE) za pisanje, ureja-nje in testiraureja-nje programske kode. Je v lasti podjetja Microsoft, vendar je odprto-koden. Na voljo ima pametne asistente za samodejno predlaganje kode in oznaˇcevanje napak, poleg tega pa ima vgrajen tudi razhroˇsˇcevalnik za iskanje napak v kodi. Zelo je priroˇcen za delu z Git-om in drugimi SCM-ponudniki, saj ima vgrajene ukaze za le-te. Povrhu vsega ima na voljo ˇstevilne razˇsiritve, ki se lahko poljubno dodajo v razvojno okolje in podporo za skoraj
vse moderne programske jezike [32].