Configuración de la aplicación
Visión general de las opciones de configuración de la Aplicación Nette.
Aplicación
application:
# muestra el panel "Nette Application" en Tracy BlueScreen?
debugger: ... # (bool) por defecto true
# ¿se llamará al presentador de errores en caso de error?
# sólo tiene efecto en modo desarrollador
catchExceptions: ... # (bool) por defecto true
# nombre del presentador de errores
errorPresenter: Error # (string|array) por defecto 'Nette:Error'
# define alias para presentadores y eventos
aliases: ...
# define las reglas para resolver el nombre del presentador a una clase
mapping: ...
# ¿los enlaces erróneos generan advertencias?
# sólo tiene efecto en modo desarrollador
silentLinks: ... # (bool) por defecto false
A partir de la versión 3.2 de nette/application
es posible definir un par de presentadores de errores:
application:
errorPresenter:
4xx: Error4xx # para Nette\Application\BadRequestException
5xx: Error5xx # para otras excepciones
La opción silentLinks
determina cómo se comporta Nette en modo desarrollo cuando falla la generación de enlaces
(por ejemplo, porque no hay presentador, etc). El valor por defecto false
significa que Nette activa
E_USER_WARNING
. El valor true
suprime este mensaje de error. En un entorno de producción, siempre se
invoca E_USER_WARNING
. También podemos influir en este comportamiento configurando la variable del presentador $invalidLinkMode.
Los alias simplifican las referencias a los presentadores más utilizados.
El mapeo define las reglas por las cuales el nombre de la clase se deriva del nombre del presentador.
Registro automático de presentadores
Nette añade automáticamente presentadores como servicios al contenedor DI, lo que acelera significativamente su creación. La forma en que Nette descubre a los presentadores puede configurarse:
application:
# ¿buscar presentadores en el mapa de clases de Composer?
scanComposer: ... # (bool) por defecto a true
# una máscara que debe coincidir con la clase y el nombre del archivo
scanFilter: ... # (string) por defecto '*Presenter'
# ¿en qué directorios buscar los presentadores?
scanDirs: # (string[]|false) por defecto '%appDir%'
- %vendorDir%/mymodule
Los directorios listados en scanDirs
no sobreescriben el valor por defecto %appDir%
, sino que lo
complementan, así scanDirs
contendrá ambas rutas %appDir%
y %vendorDir%/mymodule
. Si
queremos sobreescribir el directorio por defecto, usamos el signo de
exclamación:
application:
scanDirs!:
- %vendorDir%/mymodule
El escaneo de directorios puede desactivarse configurando false. No recomendamos suprimir por completo la adición automática de presentadores, ya que de lo contrario se reducirá el rendimiento de la aplicación.
Latte
Esta configuración afecta globalmente al comportamiento de Latte en componentes y presentadores.
latte:
# ¿muestra el panel Latte en la Tracy Bar para la plantilla principal (true) o para todos los componentes (all)?
debugger: ... # (true|false|'all') por defecto true
# genera plantillas con declare(strict_types=1)
strictTypes: ... # (bool) por defecto false
# activa el [modo de análisis sintáctico estric |latte:develop#strict mode]to
strictParsing: ... # (bool) por defecto es false
# habilita la [comprobación del código generado |latte:develop#Checking Generated Code]
phpLinter: ... # (string) por defecto es null
# establece la configuración regional
locale: cs_CZ # (string) por defecto es null
# clase de $this->plantilla
templateClass: App\MyTemplateClass # por defecto Nette\Bridges\ApplicationLatte\DefaultTemplate
Si está utilizando la versión 3 de Latte, puede añadir una nueva extensión utilizando:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Enrutamiento
Configuración básica:
routing:
# ¿muestra el panel de enrutamiento en Tracy Bar?
debugger: ... # (bool) por defecto a true
# serializar enrutador a contenedor DI?
cache: ... # (bool) por defecto false
El enrutador se define normalmente en la clase RouterFactory. Alternativamente,
los enrutadores también se pueden definir en la configuración utilizando pares mask: action
, pero este método no
ofrece una variación tan amplia en la configuración:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Constantes
Creación de constantes PHP.
constants:
Foobar: 'baz'
La constante Foobar
se creará después del arranque.
Las constantes no deben servir como variables disponibles globalmente. Para pasar valores a objetos, utilice la inyección de dependencia.
PHP
Puede establecer directivas PHP. Una visión general de todas las directivas se puede encontrar en php.net.
php:
date.timezone: Europe/Prague
Servicios DI
Estos servicios se añaden al contenedor DI:
Nombre | Tipo | Descripción |
---|---|---|
application.application |
Nette\Application\Application | Lanzador de aplicaciones completo |
application.linkGenerator |
Nette\Application\LinkGenerator | Generador de enlaces |
application.presenterFactory |
Nette\Application\PresenterFactory | fábrica de presentadores |
application.### |
Nette\Application\UI\Presenter | presentadores individuales |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | fábrica para Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | fábrica para $this->template |