Configuração da aplicação
Visão geral das opções de configuração para a Aplicação Nette.
Aplicação
application:
# mostra painel "Aplicação Nette" em Tracy BlueScreen?
debugger: ... # (bool) por omissão
# O apresentador de erros será chamado no erro?
# tem efeito somente no modo de desenvolvedor
catchExceptions: ... # (bool) tem como padrão true
# nome do apresentador de erro
errorPresenter: Error # (string|array) padrão para 'Nette:Erro'.
# define aliases para apresentadores e eventos
aliases: ...
# define as regras para resolver o nome do apresentador para uma classe
mapping: ...
# os links ruins geram avisos?
# tem efeito somente no modo desenvolvedor
silentLinks: ... # (bool) falha em falso
A partir da versão 3.2 do site nette/application
, é possível definir um par de apresentadores de erros:
application:
errorPresenter:
4xx: Error4xx # para Nette\Application\BadRequestException
5xx: Error5xx # para outras exceções
A opção silentLinks
determina como Nette se comporta em modo desenvolvedor quando a geração de links falha
(por exemplo, porque não há apresentador, etc.). O valor padrão false
significa que a Nette aciona
E_USER_WARNING
. A configuração para true
suprime esta mensagem de erro. Em um ambiente de produção,
E_USER_WARNING
é sempre invocado. Também podemos influenciar este comportamento definindo a variável apresentadora
$invalidLinkMode.
Os apelidos simplificam a referência a apresentadores usados com frequência.
O mapeamento define as regras pelas quais o nome da classe é derivado do nome do apresentador.
Registro automático dos apresentadores
A Nette adiciona automaticamente apresentadores como serviços ao contêiner DI, o que acelera significativamente sua criação. Como Nette descobre que os apresentadores podem ser configurados:
application:
# para procurar apresentadores no mapa da classe Composer?
scanComposer: ... # (bool) por omissão
# uma máscara que deve corresponder à classe e ao nome do arquivo
scanFilter: ... # (string) default to '*Presenter' (string)
# em quais diretórios procurar apresentadores?
scanDirs: # (string[]|false) padrão a '%appDir%'.
- %vendorDir%/mymodule
Os diretórios listados em scanDirs
não substituem o valor padrão %appDir%
, mas o complementam,
portanto scanDirs
conterá ambos os caminhos %appDir%
e %vendorDir%/mymodule
. Se quisermos
sobrescrever o diretório padrão, usamos ponto de
exclamação:
application:
scanDirs!:
- %vendorDir%/mymodule
A digitalização de diretórios pode ser desativada definindo falso. Não recomendamos a supressão completa da adição automática de apresentadores, caso contrário, o desempenho da aplicação será reduzido.
Latte
Este cenário afeta globalmente o comportamento do Latte em componentes e apresentadores.
latte:
# mostra o painel Latte no Tracy Bar para o modelo principal (true) ou para todos os componentes (all)?
debugger: ... # (true|false|'all') padrão para true
# gera modelos com declare(strict_types=1)
strictTypes: ... # (bool) falha em falso
# Ativa o [modo de analisador estrito |latte:develop#strict mode]
strictParsing: ... # (bool) o padrão é false
# Permite [verificar o código gerado |latte:develop#Checking Generated Code]
phpLinter: ... # (string) o padrão é null
# Define a localidade
locale: cs_CZ # (string) o padrão é nulo
# classe de $this->template
templateClass: App\MyTemplateClass # defaults to Nette\Bridges\ApplicationLatte\DefaultTemplate
Se você estiver usando Latte versão 3, você pode adicionar uma nova extensão usando:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Roteiro
Configurações básicas:
routing:
# mostra painel de roteamento em Tracy Bar?
debugger: ... # (bool) por omissão
# para seriar o roteador para o contêiner DI?
cache: ... # (bool) falha em falso
O roteador é normalmente definido na classe RouterFactory. Alternativamente,
as rotinas também podem ser definidas na configuração usando mask: action
pares, mas este método não oferece uma
variação tão grande nas configurações:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Constantes
Criação de constantes PHP.
constants:
Foobar: 'baz'
A constante Foobar
será criada após o início das operações.
As constantes não devem servir como variáveis disponíveis globalmente. Para passar valores a objetos, use a injeção de dependência.
PHP
Você pode definir diretrizes PHP. Uma visão geral de todas as diretivas pode ser encontrada em php.net.
php:
date.timezone: Europe/Prague
Serviços DI
Esses serviços são adicionados ao contêiner DI:
Nome | Tipo | Descrição |
---|---|---|
application.application |
Nette\Application\Application | lançador de aplicativos completo |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | fábrica de apresentadores |
application.### |
Nette\Application\UI\Presenter | apresentadores individuais |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | factory for Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | fábrica para $this->template |