Glosar izrazov
AJAX
Asinhroni JavaScript in XML – tehnologija za komunikacijo med odjemalcem in strežnikom prek protokola HTTP brez potrebe po ponovnem nalaganju celotne strani med vsako zahtevo. Kljub kratici se namesto XML pogosto uporablja format JSON.
Akcija predavatelja
Logični del predstavnika, ki izvaja eno dejanje, na primer prikaže stran izdelka, odjavi uporabnika itd. En predstavnik ima lahko več dejanj.
BOM
Tako imenovana maska vrstnega reda bajtov je poseben prvi znak datoteke in označuje vrstni red bajtov v kodiranju. Nekateri urejevalniki jo vključijo samodejno in je praktično nevidna, vendar povzroča težave pri glavi in pošiljanju izpisa znotraj PHP. Za množično odstranjevanje lahko uporabite program Code Checker.
Nadzornik
Krmilnik obdeluje zahteve uporabnika in na njihovi podlagi pokliče določeno aplikacijsko logiko (tj. model), nato pa pokliče pogled za prikazovanje podatkov. Analogija kontrolerjem so predstavniki v okolju Nette Framework.
Navzkrižno pisanje na spletnem mestu (XSS)
Cross-Site Scripting je metoda motenja spletnega mesta z uporabo neoznačenega vnosa. Napadalec lahko vnese lastno kodo HTML ali JavaScript in spremeni videz strani ali celo zbere občutljive podatke o uporabnikih. Zaščita pred XSS je preprosta: dosledno in pravilno eskapiranje vseh nizov in vnosov.
Okvir Nette je na voljo povsem nova tehnologija Context-Aware Escaping, s katero se boste za vedno znebili tveganj Cross-Site Scripting. Na podlagi danega konteksta samodejno eskapira vse vhode, zato je nemogoče, da bi programer na kaj pomotoma pozabil.
Križanje spletnih strani (CSRF)
Napad Cross-Site Request Forgery pomeni, da napadalec žrtev zvabi k obisku strani, ki v brskalniku žrtve tiho izvede zahtevo v strežnik, v katerega je žrtev trenutno prijavljena, strežnik pa verjame, da je zahtevo po svoji volji izvedla žrtev. Strežnik izvede določeno dejanje pod identiteto žrtve, vendar se žrtev tega ne zaveda. To je lahko spreminjanje ali brisanje podatkov, pošiljanje sporočila itd.
Okvir Nette samodejno ščiti obrazce in signale v predstavitvah pred tovrstnimi napadi. To stori tako, da prepreči njihovo pošiljanje ali klicanje iz druge domene.
Vključevanje odvisnosti (Dependency Injection)
Vbrizgavanje odvisnosti (Dependency Injection, DI) je načrtovalski vzorec, ki določa, kako ločiti ustvarjanje objektov od njihovih odvisnosti. To pomeni, da razred ni odgovoren za ustvarjanje ali inicializacijo svojih odvisnosti, temveč te odvisnosti zagotovi zunanja koda (ki lahko vključuje vsebnik DI). Prednost tega je, da omogoča večjo prilagodljivost kode, boljšo berljivost in lažje testiranje aplikacije, saj so odvisnosti zlahka zamenljive in ločene od drugih delov kode. Za več informacij glejte Kaj je vbrizgavanje odvisnosti?
Zabojnik za vbrizgavanje odvisnosti
Posoda za vbrizgavanje odvisnosti (tudi posoda DI ali posoda IoC) je orodje, ki skrbi za ustvarjanje in upravljanje odvisnosti v aplikaciji (ali storitvah). Vsebnik ima običajno konfiguracijo, ki določa, kateri razredi so odvisni od drugih razredov, katere posebne implementacije odvisnosti je treba uporabiti in kako ustvariti te odvisnosti. Vsebnik nato ustvari te objekte in jih zagotovi razredom, ki jih potrebujejo. Za več informacij glejte Kaj je vsebnik DI?
Izogibanje
Escaping je pretvorba znakov s posebnim pomenom v danem kontekstu v drugo enakovredno zaporedje. Primer: Želimo zapisati
narekovaje v niz z narekovaji. Ker imajo narekovaji v kontekstu z narekovaji zaprtega niza poseben pomen, je treba uporabiti
drugo enakovredno zaporedje. Konkretno zaporedje določajo pravila konteksta (npr. \"
v PHP-jevem nizu
z narekovaji, "
v atributih HTML itd.).
Filter (prej pomočnik)
Funkcija filtra. V predlogah je filter funkcija, ki pomaga spremeniti ali oblikovati podatke v izhodno obliko. Predloge imajo vnaprej definiranih več standardnih filtrov.
Invalidacija
Obvestilo o snippetu za ponovno prikazovanje. V drugem kontekstu tudi brisanje predpomnilnika.
JSON
Format za izmenjavo podatkov, ki temelji na sintaksi JavaScript (je njena podmnožica). Natančna specifikacija je na voljo na naslovu www.json.org.
Komponenta
Del aplikacije, ki ga je mogoče ponovno uporabiti. Lahko je vizualni del strani, kot je opisano v poglavju components, lahko pa izraz pomeni tudi razred Component (ni nujno, da je takšna komponenta vizualna).
Kontrolni znaki
Kontrolni znaki so nevidni znaki, ki se lahko pojavijo v besedilu in sčasoma povzročijo nekaj težav. Za njihovo množično odstranjevanje iz datotek lahko uporabite program Code Checker, za njihovo odstranjevanje iz spremenljivke pa funkcijo Strings::normalize().
Dogodki
Dogodek je pričakovana situacija v objektu, ko se zgodi, se pokličejo tako imenovani handlerji, tj. povratni klici, ki se odzovejo na dogodek (vzorec). Dogodek je lahko na primer oddaja obrazca, prijava uporabnika itd. Dogodki so torej oblika inverzije nadzora.
Na primer, prijava uporabnika se zgodi v metodi Nette\Security\User::login()
. Objekt User
ima javno
spremenljivko $onLoggedIn
, ki je polje, v katerega lahko vsakdo doda povratni klic. Takoj ko se uporabnik prijavi,
metoda login()
pokliče vse povratne klice v polju. Ime spremenljivke v obliki onXyz
je konvencija, ki
se uporablja v celotnem sistemu Nette.
Latte
Eden najbolj inovativnih sistemov za oblikovanje predlog doslej.
Model
Model predstavlja podatkovno in funkcijsko osnovo celotne aplikacije. Vključuje celotno logiko aplikacije (včasih imenovano tudi „poslovna logika“). To je M MVC ali MPV. Vsako dejanje uporabnika (prijava, dajanje stvari v košarico, sprememba vrednosti podatkovne zbirke) predstavlja dejanje modela.
Model upravlja svoje notranje stanje in zagotavlja javni vmesnik. S klicem tega vmesnika lahko prevzamemo ali spremenimo njegovo stanje. Model ne ve za obstoj pogleda ali krmilnika, model je od njiju popolnoma neodvisen.
Model-pogled-kontroler
Programska arhitektura, ki se je pojavila pri razvoju aplikacij grafičnega vmesnika, da bi ločila kodo za nadzor pretoka (kontroler) od kode aplikacijske logike (model) in kode za prikazovanje podatkov (pogled). Na ta način je koda bolje razumljiva, olajša nadaljnji razvoj in omogoča ločeno testiranje ločenih delov.
Model-pogled-predstavnik
Arhitektura, ki temelji na Model-View-Controller.
Modul
Modul v ogrodju Nette predstavlja zbirko predstavnikov in predlog, lahko tudi komponent in modelov, ki predstavljajo podatke za predstavnika. Tako je določen logični del aplikacije.
Na primer, e-trgovina ima lahko tri module:
- Katalog izdelkov s košarico.
- Administracija za stranko.
- Administracija za lastnika trgovine.
Imenski prostor
Prostor imen je značilnost jezika PHP od različice 5.3 naprej in tudi nekaterih drugih programskih jezikov. Pomaga preprečiti kolizijo imen (npr. dva razreda z istim imenom) pri skupni uporabi različnih knjižnic. Za več podrobnosti glejte dokumentacijo PHP.
Predavatelj
Presenter je objekt, ki prevzame zahtevo, kot jo usmerjevalnik prevede iz zahteve HTTP, in ustvari odgovor. Odgovor je lahko stran HTML, slika, dokument XML, datoteka, JSON, preusmeritev ali kar koli si zamislite.
S predstavnikom je običajno mišljen potomec razreda Nette\Application\UI\Presenter. Z zahtevami izvaja ustrezna dejanja in izrisuje predloge.
Usmerjevalnik
Dvosmerni prevajalnik med zahtevo HTTP/naslovom URL in dejanjem predstavnika. Dvosmerno pomeni, da ni mogoče le izpeljati predstavitvene akcije iz zahteve HTTP, temveč tudi ustvariti ustrezen URL za akcijo. Več informacij najdete v poglavju o usmerjanju URL.
Piškotek SameSite
Piškotki SameSite zagotavljajo mehanizem za prepoznavanje, kaj je privedlo do nalaganja strani. Ima lahko tri vrednosti:
Lax
, Strict
in None
(slednja zahteva HTTPS). Če zahteva po strani prihaja neposredno
s spletnega mesta ali če uporabnik odpre stran z neposrednim vnosom v naslovno vrstico ali klikom na zaznamek, brskalnik
pošlje strežniku vse piškotke (tj. z oznakami Lax
, Strict
in None
). Če uporabnik
klikne na spletno mesto prek povezave z drugega spletnega mesta, se strežniku posredujejo piškotki z zastavicama
Lax
in None
. Če je zahteva poslana na drug način, na primer z oddajo obrazca POST z drugega
spletnega mesta, nalaganjem znotraj iframe, uporabo JavaScripta itd., se pošljejo samo piškotki z zastavico
None
.
Storitev
V kontekstu vrivanja odvisnosti se storitev nanaša na objekt, ki ga ustvari in upravlja vsebnik DI. Storitev je mogoče preprosto zamenjati z drugo izvedbo, na primer za namene testiranja ali za spremembo obnašanja aplikacije, ne da bi bilo treba spreminjati kodo, ki uporablja storitev.
Utrinek
Odlomek strani, ki se lahko ločeno ponovno prikaže med zahtevo AJAX.
Pogled
Pogled je plast aplikacije, ki je odgovorna za upodabljanje rezultatov zahtevkov. Običajno uporablja sistem šablon in ve, kako naj prikaže svoje komponente ali rezultate, prevzete iz modela.