Glosario

AJAX

Asynchronous JavaScript and XML – tecnología para la comunicación cliente-servidor a través del protocolo HTTP sin necesidad de recargar toda la página en cada petición. A pesar de las siglas, a menudo se utiliza el formato JSON en lugar de XML.

Acción del presentador

Parte lógica del presentador que realiza una acción, como mostrar una página de producto, dar de baja a un usuario, etc. Un presentador puede tener más acciones.

BOM

La llamada máscara de orden de bytes es un primer carácter especial de un archivo e indica el orden de bytes en la codificación. Algunos editores la incluyen automáticamente, es prácticamente invisible, pero causa problemas con las cabeceras y el envío de salida desde dentro de PHP. Puede usar Code Checker para su eliminación masiva.

Controlador

El controlador procesa las peticiones del usuario y en base a ellas llama a la lógica particular de la aplicación (ej. modelo), luego llama a la vista para la representación de los datos. Una analogía de los controladores son los presentadores en Nette Framework.

Cross-Site Scripting (XSS)

Cross-Site Scripting es un método de perturbación de sitios que utiliza entradas no descifradas. Un atacante puede inyectar su propio código HTML o JavaScript y cambiar el aspecto de la página o incluso recopilar información sensible sobre los usuarios. La protección contra el XSS es sencilla: escape coherente y correcto de todas las cadenas y entradas.

Nette Framework viene con una nueva tecnología de Context-Aware Escaping, que le librará de los riesgos de Cross-Site Scripting para siempre. Escapa todas las entradas automáticamente basándose en un contexto dado, por lo que es imposible que un programador olvide algo accidentalmente.

Falsificación de petición en sitios cruzados (CSRF)

Un ataque Cross-Site Request Forgery consiste en que el atacante atrae a la víctima para que visite una página que ejecuta silenciosamente una petición en el navegador de la víctima al servidor donde la víctima está conectada en ese momento, y el servidor cree que la petición ha sido realizada por la víctima a voluntad. El servidor realiza una determinada acción bajo la identidad de la víctima pero sin que ésta se dé cuenta. Puede ser cambiar o borrar datos, enviar un mensaje, etc.

Nette Framework protege automáticamente los formularios y señales de los presentadores de este tipo de ataques. Esto se hace impidiendo que sean enviados o llamados desde otro dominio.

Escapando de

El escape es la conversión de caracteres con un significado especial en un contexto determinado en otras secuencias equivalentes. Ejemplo: Queremos escribir comillas en una cadena entrecomillada. Como las comillas tienen un significado especial en el contexto de la cadena entrecomillada, es necesario utilizar otra secuencia equivalente. La secuencia concreta viene determinada por las reglas del contexto (por ejemplo, \" en la cadena entrecomillada de PHP, " en los atributos HTML, etc.).

Filtro (antes Helper)

Función de filtro. En las plantillas, el filtro es una función que ayuda a alterar o formatear los datos de salida. Las plantillas tienen varios filtros estándar predefinidos.

Invalidación

Aviso de un fragmento para volver a renderizar. En otro contexto también borrado de una caché.

JSON

Formato de intercambio de datos basado en la sintaxis de JavaScript (es su subconjunto). La especificación exacta puede encontrarse en www.json.org.

Componente

Parte reutilizable de una aplicación. Puede ser una parte visual de una página, como se describe en el capítulo application:components, o el término también puede referirse a la clase Component (dicho componente no tiene por qué ser visual).

Caracteres de control

Los caracteres de control son caracteres invisibles que pueden aparecer en un texto y causar problemas. Para su eliminación masiva de archivos, puede usar Code Checker, para su eliminación de una variable use la función Strings::normalize().

Eventos

Un evento es una situación esperada en un objeto y cuando ocurre, los llamados manejadores, es decir, funciones que responden al evento, son llamados. Un evento puede ser el envío de un formulario, el inicio de sesión de un usuario, etc. Por ejemplo, un inicio de sesión de usuario se produce en el método Nette\Security\User::login(). El objeto User tiene una variable pública $onLoggedIn, que es una matriz a la que cualquiera puede añadir una llamada de retorno. En cuanto el usuario inicia sesión, el método login() llama a todas las retrollamadas de la matriz. El nombre de una variable de la forma onXyz es una convención utilizada en todo Nette.

Latte

Uno de los sistemas de plantillas más innovadores de la historia.

Modelo

El modelo representa la base de datos y funciones de toda la aplicación. Incluye toda la lógica de la aplicación (a veces también denominada “lógica de negocio”). Es el M de MVC o MPV. Cualquier acción del usuario (iniciar sesión, poner algo en la cesta, cambiar un valor de la base de datos) representa una acción del modelo.

El modelo gestiona su estado interno y proporciona una interfaz pública. Llamando a esta interfaz podemos tomar o cambiar su estado. El modelo no sabe de la existencia de una vistacontrolador, el modelo es totalmente independiente de ellos.

Modelo-Vista-Controlador

Arquitectura de software, que surgió en el desarrollo de aplicaciones GUI para separar el código para el control de flujo(controlador) del código de la lógica de la aplicación(modelo) y del código de representación de datos(vista). De esta forma el código es más comprensible, facilita el desarrollo futuro y permite probar las partes por separado.

Modelo-Vista-Presentador

Arquitectura basada en Modelo-Vista-Controlador.

Módulo

Módulo en Nette Framework representa una colección de presentadores y plantillas, eventualmente también componentes y modelos, que sirven datos a un presentador. Así que es cierta parte lógica de una aplicación.

Por ejemplo, una e-shop puede tener tres módulos:

  1. Catálogo de productos con cesta.
  2. Administración para el cliente.
  3. Administración para el comerciante.

Espacio de nombres

Namespace es una característica del lenguaje PHP desde su versión 5.3 y de algunos otros lenguajes de programación también. Ayuda a evitar colisiones de nombres (por ejemplo, dos clases con el mismo nombre) cuando se utilizan diferentes bibliotecas juntas. Consulte la documentación de PHP para más detalles.

Presentador

Presentador es un objeto, que toma la petición tal y como la traduce el enrutador desde la petición HTTP y genera una respuesta. La respuesta puede ser una página HTML, una imagen, un documento XML, un archivo, JSON, una redirección o lo que se te ocurra.

Por presentador suele entenderse un descendiente de la clase Nette\Application\UI\Presenter. Por peticiones ejecuta las acciones apropiadas y renderiza las plantillas.

Enrutador

Traductor bidireccional entre la solicitud HTTP / URL y la acción del presentador. Bidireccional significa que no sólo es posible derivar una acción del presentador a partir de la solicitud HTTP, sino también generar la URL adecuada para una acción. Ver más en el capítulo sobre enrutamiento URL.

Las cookies SameSite proporcionan un mecanismo para reconocer qué condujo a la carga de una página. El indicador SameSite puede tener tres valores: Lax, Strict y None (requiere HTTPS). Si la solicitud de una página procede directamente de la propia web o el usuario abre la página introduciéndola directamente en la barra de direcciones o haciendo clic en un marcador, el navegador envía todas las cookies al servidor (es decir, con las banderas Lax, Strict y None). Si un usuario llega al sitio web a través de un enlace desde otro sitio web, las cookies con las banderas Lax y None se pasarán al servidor. Si la solicitud se produce de otra forma, como el envío de un formulario POST desde otro origen, la carga dentro de un iframe, el uso de JavaScript, etc., sólo se enviarán cookies con la bandera None.

Fragmento

Fragmento de una página que se puede volver a renderizar por separado durante una solicitud AJAX.

Ver

La vista es una capa de la aplicación, que es responsable de renderizar los resultados de la petición. Usualmente utiliza un sistema de plantillas y sabe, como renderizar sus componentes o resultados tomados del modelo.