Glossary
AJAX
Asynchronous JavaScript and XML – technology for client-server communication over the HTTP protocol without the need for reload of the whole page during each request. Despite the acronym, JSON format is often used instead of XML.
Presenter Action
Logical part of the presenter, performing one action, such as to show a product page, to sign out a user etc. One presenter can have more actions.
BOM
So-called byte order mask is a special first character of a file and indicates byte order in the encoding. Some editors include it automatically, it's practically invisible, but it causes problems with headers and output sending from within PHP. You can use Code Checker for bulk removal.
Controller
Controller processes requests from user and on their basis it calls particular application logic (ie. model), then it calls view for data rendering. Analogy to controllers are presenters in Nette Framework.
Escaping
Escaping is conversion of characters with special meaning in given context to another equivalent sequences. Example: We want to
write quotes into quotes-enclosed string. Because quotes have special meaning in context of the quotes-enclosed string, there is a
need to use another equivalent sequence. Concrete sequence is determined by the context rules (e.g. \"
in
PHP's quotes-enclosed string, "
in HTML attributes etc.).
Filter (Formerly Helper)
Filter function. In templates, filter is a function, that helps to alter or format data to the output form. Templates have several standard filters predefined.
Invalidation
Notice of a snippet to rerender. In other context also clearing of a cache.
JSON
Data exchange format based on JavaScript syntax (it's its subset). Exact specification can be found at www.json.org.
Component
Reusable part of an application. It can be a visual part of a page, as described in the components chapter, or the term can also stand for the class Component (such a component doesn't have to be visual).
Control Characters
Control characters are invisible characters, that can occur in a text and eventually to cause some problems. For their bulk removal from files, you can use Code Checker, for their removal from a variable use function Strings::normalize().
Events
An event is an expected situation in an object and when it occurs, so-called handlers, ie functions that respond to the event,
are called. Event can be to form submission, a user login, etc. For example, a user login occurs in the
Nette\Security\User::login()
method. The User
object has a public variable $onLoggedIn
,
which is an array to which anyone can add a callback. As soon as the user logs in, the login()
method calls all
callbacks in the array. The name of a variable in the form onXyz
is a convention used throughout Nette.
Latte
One of the most innovative templating systems ever.
Model
Model represents data and function basis of the whole application. It includes the whole application logic (sometimes also referred to as a “business logic”). It's the M of MVC or MPV. Any user action (loging in, putting stuff to basket, change of a database value) represents an action of the model.
Model manages its inner state and provides a public interface. By calling of this interface we can take or change its state. Model doesn't know about an existence of view or controller, model is totally independent on them.
Model-View-Controller
Software architecture, that emerged in GUI applications development to separate the code for the flow control (controller) from the code of the application logic (model) and from the data rendering code (view). That way the code is better understandable, it eases the future development and it allows to test separate parts separately.
Model-View-Presenter
Architecture based on Model-View-Controller.
Module
Module in Nette Framework represents a collection of presenters and templates, eventually also components and models, that serve data to a presenter. So it is certain logical part of an application.
For example, an e-shop can have three modules:
- Product catalogue with basket.
- Administration for the customer.
- Administration for the shopkeeper.
Namespace
Namespace is a feature of the PHP language from its version 5.3 and some other programming languages as well. It helps to avoid names collisions (e.g. two classes with the same name) when using different libraries together. See PHP documentation for further detail.
Presenter
Presenter is an object, that takes the request as translated by the router from the HTTP request and generates a response. Response can be an HTML page, picture, XML document, file, JSON, redirect or whatever you think of.
By a presenter it is usually meant an descendant of the Nette\Application\UI\Presenter class. By requests it runs appropriate actions and renders templates.
Router
Bi-directional translator between HTTP request / URL and presenter action. Bi-directional means, that it's not only possible to derive a presenter action from the HTTP request, but also to generate appropriate URL for an action. See more in the chapter about URL routing.
Snippet
Snippet of a page, that can be separately re-rendered during an AJAX request.
View
View is a layer of application, that is responsible for request results rendering. Usually it uses a templating system and it knows, how to render its components or results taken from the model.