Slovarček pojmov
AJAX
Asinhroni JavaScript in XML – tehnologija izmenjave informacij med odjemalcem in strežnikom preko protokola HTTP brez potrebe po ponovnem nalaganju celotne strani ob vsaki zahtevi. Čeprav bi se lahko iz imena zdelo, da pošilja podatke le v formatu XML, se običajno uporablja tudi format JSON.
Akcija presenterja
Logični del presenterja, ki izvaja eno akcijo. Na primer prikaže stran izdelka, odjavi uporabnika ipd. En presenter lahko ima več akcij.
BOM
T.i. byte order mark (oznaka vrstnega reda bajtov) je poseben prvi znak v datoteki, ki se uporablja kot indikator vrstnega reda bajtov v kodiranju. Nekateri urejevalniki ga vstavljajo v datoteke. Je praktično neviden, vendar povzroča težave s pošiljanjem izpisa in glav iz PHP. Za množično odstranjevanje lahko uporabite Code Checker.
Controller
Krmilnik, ki obdeluje zahteve uporabnika in na njihovi podlagi nato kliče ustrezno aplikacijsko logiko (tj. model) ter nato zahteva od pogleda izrisovanje podatkov. Ustreznik krmilnikov v Nette Frameworku so presenterji.
Cross-Site Scripting (XSS)
Cross-Site Scripting je metoda kršitve spletnih strani z zlorabo neobdelanih izpisov. Napadalec nato lahko v stran podtakne svojo lastno kodo in s tem lahko stran spremeni ali celo pridobi občutljive podatke o obiskovalcih. Proti XSS se je mogoče braniti le z dosledno in pravilno obdelavo vseh nizov.
Nette Framework prinaša revolucionarno tehnologijo Context-Aware Escaping, ki vas za vedno odpravi tveganja Cross-Site Scriptinga. Vse izpise namreč obdeluje samodejno in tako se ne more zgoditi, da bi koder na kaj pozabil.
Cross-Site Request Forgery (CSRF)
Napad Cross-Site Request Forgery temelji na tem, da napadalec zvabi žrtev na stran, ki neopazno v brskalniku žrtve izvede zahtevo na strežnik, na katerem je žrtev prijavljena, in strežnik domneva, da je zahtevo izvedla žrtev po svoji volji. In tako pod identiteto žrtve izvede določeno dejanje, ne da bi ta vedela o tem. Lahko gre za spremembo ali brisanje podatkov, pošiljanje sporočila itd.
Nette Framework samodejno ščiti obrazce in signale v presenterjih pred to vrsto napada. In to s tem, da preprečuje njihovo pošiljanje ali klicanje iz druge domene.
Dependency Injection
Dependency Injection (DI) je načrtovalski vzorec, ki pravi, kako ločiti ustvarjanje objektov od njihovih odvisnosti. Torej da razred ni odgovoren za ustvarjanje ali inicializacijo svojih odvisnosti, ampak so mu namesto tega te odvisnosti zagotovljene s strani zunanje kode (to je lahko tudi DI vsebnik). Prednost temelji na tem, da omogoča večjo fleksibilnost kode, boljšo razumljivost in lažje testiranje aplikacije, ker so odvisnosti lahko nadomestljive in izolirane od drugih delov kode. Več v poglavju Kaj je Dependency Injection?
Dependency Injection vsebnik
Dependency Injection vsebnik (tudi DI vsebnik ali IoC vsebnik) je orodje, ki skrbi za ustvarjanje in upravljanje odvisnosti v aplikaciji (ali storitev). Vsebnik ima večinoma konfiguracijo, ki definira, kateri razredi so odvisni od drugih razredov, katere konkretne implementacije odvisnosti se naj uporabijo in kako se naj te odvisnosti ustvarjajo. Nato vsebnik ustvari te objekte in jih zagotovi razredom, ki jih potrebujejo. Več v poglavju Kaj je DI vsebnik?
Ubežanje znakov / Escaping
Ubežanje znakov je pretvorba znakov, ki imajo v danem kontekstu poseben pomen, v druge ustrezne zaporedje. Primer: v niz, omejen z narekovaji, želimo zapisati narekovaje. Ker imajo narekovaji v kontekstu niza poseben pomen in bi bil njihov preprost zapis razumljen kot konec niza, jih je treba zapisati z drugim ustreznim zaporedjem. Kakšnim natančno, določajo pravila konteksta.
Filter (prej helper)
V predlogah se pod pojmom filter običajno razume funkcija, ki pomaga urediti ali preoblikovati podatke v končno obliko. Predloge razpolagajo z več standardnimi filtri.
Invalidacija
Obvestilo snippetu, naj se ponovno izriše. V drugem pomenu tudi brisanje vsebine predpomnilnika.
JSON
Format za izmenjavo podatkov, ki izhaja iz sintakse JavaScripta (je njena podmnožica). Natančno specifikacijo najdete na strani www.json.org.
Komponenta
Ponovno uporabna komponenta aplikacije. Lahko je vizualni del strani, kot opisuje poglavje Pišemo komponente, ali pa se pod pojmom komponenta razume tudi razred Component (takšna komponenta ni nujno vizualna).
Kontrolni znaki
Kontrolni znaki so nevidni znaki, ki se lahko pojavljajo v besedilu in morebiti tudi povzročajo težave. Za njihovo množično odstranjevanje iz datotek lahko uporabite Code Checker in za odstranjevanje iz spremenljivke funkcijo Strings::normalize().
Dogodki (eventi)
Dogodek je pričakovana situacija v objektu, ki ko nastane, se pokličejo t.i. obdelovalci, torej povratni klici, ki se odzivajo na dogodek (primer). Dogodek je lahko na primer pošiljanje obrazca, prijava uporabnika itd. Dogodki so tako oblika Inversion of Control (Obrat nadzora).
Na primer, prijava uporabnika se dogaja v metodi Nette\Security\User::login()
. Objekt User
ima javno
spremenljivko $onLoggedIn
, kar je polje, v katerega lahko kdorkoli doda povratni klic. V trenutku, 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 Nette.
Latte
Eden najnaprednejših sistemov predlog.
Model
Model je podatkovna in predvsem funkcionalna osnova celotne aplikacije. V njem je vsebovana celotna aplikacijska logika (uporablja se tudi izraz poslovna logika). Je tisti M iz MVC ali MVP. Kakršnakoli akcija uporabnika (prijava, dodajanje izdelka v košarico, sprememba vrednosti v podatkovni bazi) predstavlja akcijo modela.
Model upravlja svoje notranje stanje in navzven ponuja trdno določen vmesnik. S klicanjem funkcij tega vmesnika lahko ugotavljamo ali spreminjamo njegovo stanje. Model ne ve za obstoj pogleda ali krmilnika.
Model-View-Controller
Programska arhitektura, ki je nastala iz potrebe po ločitvi kode za obdelavo (krmilnik) od kode aplikacijske logike (model) in od kode za prikaz podatkov (pogled) pri aplikacijah z grafičnim vmesnikom. S tem aplikacijo naredi bolj pregledno, olajšuje prihodnji razvoj in omogoča testiranje posameznih delov ločeno.
Model-View-Presenter
Arhitektura, ki izhaja iz Model-View-Controller.
Modul
Modul predstavlja logični del aplikacije. V tipični ureditvi gre za skupino presenterjev in predlog, ki rešujejo določeno
področje funkcionalnosti. Module postavljamo v samostojne mape, kot npr.
Front/
, Admin/
ali Shop/
.
Na primer, spletno trgovino razdelimo na:
- Frontend (
Shop/
) za pregledovanje izdelkov in nakup - Odsek za stranke (
Customer/
) za upravljanje naročil - Administracijo (
Admin/
) za upravljavca
Tehnično gre za običajne mape, ki pa zahvaljujoč pregledni razdelitvi pomagajo skalirati aplikacijo. Presenter
Admin:Product:List
bo tako fizično nameščen na primer v mapi app/Presentation/Admin/Product/List/
(glej preslikavo presenterjev).
Namespace
Imenski prostor, del jezika PHP od različice 5.3 in nekaterih drugih programskih jezikov, ki omogoča uporabo razredov, ki so v različnih knjižnicah enako poimenovani, ne da bi prišlo do konflikta imen. Glej dokumentacijo PHP.
Presenter
Presenter je objekt, ki vzame zahtevo, prevedeno z usmerjevalnikom iz HTTP zahteve, in generira odgovor. Odgovor je lahko HTML stran, slika, XML dokument, datoteka na disku, JSON, preusmeritev ali karkoli si zamislite.
Običajno se pod pojmom presenter misli na potomca razreda Nette\Application\UI\Presenter. Glede na dohodne zahteve poganja ustrezne akcije in izrisuje predloge.
Router
Dvosmerni prevajalnik med HTTP zahtevo / URL in akcijo presenterja. Dvosmerno pomeni, da je mogoče iz HTTP zahteve izpeljati akcijo presenterja, pa tudi obratno k akciji generirati ustrezen URL. Več v poglavju o usmerjanju URL.
SameSite cookie
SameSite piškotki zagotavljajo mehanizem za prepoznavanje, kaj je vodilo k nalaganju strani. Lahko ima tri vrednosti:
Lax
, Strict
in None
(ta zahteva HTTPS). Če zahteva za stran prihaja neposredno
s spletnega mesta ali uporabnik odpre stran z neposrednim vnosom v naslovno vrstico ali klikom na zaznamek, brskalnik pošlje
strežniku vse piškotke (torej z zastavicami Lax
, Strict
in None
). Če se uporabnik na
spletno mesto preklikne preko povezave z drugega spletnega mesta, se strežniku posredujejo piškotki z zastavicami
Lax
in None
. Če zahteva nastane na drug način, kot je pošiljanje POST obrazca z drugega spletnega
mesta, nalaganje znotraj iframe, s pomočjo JavaScripta, itd., se pošljejo samo piškotki z zastavico None
.
Služba
V kontekstu Dependency Injection se kot storitev označuje objekt, ki je ustvarjen in upravljan s strani DI vsebnika. Storitev je mogoče enostavno nadomestiti z drugo implementacijo, na primer za namene testiranja ali za spremembo obnašanja aplikacije, ne da bi bilo treba urejati kodo, ki storitev uporablja.
Snippet
Izrezek, del strani, ki ga je mogoče samostojno ponovno izrisati med AJAX zahtevo.
View
View, torej pogled, je plast aplikacije, ki je zadolžena za prikaz rezultata zahteve. Običajno uporablja sistem predlog in ve, kako se naj prikaže ta ali ona komponenta ali rezultat, pridobljen iz modela.