Configuração de aplicações
Visão geral das opções de configuração para Aplicações Nette.
Application
application:
# exibir o painel "Nette Application" no Tracy BlueScreen?
debugger: ... # (bool) padrão é true
# o error-presenter será chamado em caso de erro?
# tem efeito apenas no modo de desenvolvimento
catchExceptions: ... # (bool) padrão é true
# nome do error-presenter
errorPresenter: Error # (string|array) padrão é 'Nette:Error'
# define aliases para presenters e ações
aliases: ...
# define regras para traduzir o nome do presenter para a classe
mapping: ...
# links inválidos não geram avisos?
# tem efeito apenas no modo de desenvolvimento
silentLinks: ... # (bool) padrão é false
A partir da versão nette/application
3.2, é possível definir um par de error-presenters:
application:
errorPresenter:
4xx: Error4xx # para a exceção Nette\Application\BadRequestException
5xx: Error5xx # para outras exceções
A opção silentLinks
determina como o Nette se comporta no modo de desenvolvimento quando a geração de um
link falha (por exemplo, porque o presenter não existe, etc.). O valor padrão false
significa que o Nette
lançará um erro E_USER_WARNING
. Definir como true
suprimirá esta mensagem de erro. No ambiente de
produção, E_USER_WARNING
é sempre lançado. Este comportamento também pode ser influenciado definindo a variável
do presenter $invalidLinkMode.
Aliases simplificam a vinculação a presenters frequentemente usados.
Mapeamento define regras, segundo as quais o nome da classe é derivado do nome do presenter.
Registro automático de presenters
O Nette adiciona automaticamente presenters como serviços ao contêiner de DI, o que acelera significativamente sua criação. Como o Nette localiza os presenters pode ser configurado:
application:
# procurar presenters no mapa de classes do Composer?
scanComposer: ... # (bool) padrão é true
# máscara que o nome da classe e do arquivo deve corresponder
scanFilter: ... # (string) padrão é '*Presenter'
# em quais diretórios procurar presenters?
scanDirs: # (string[]|false) padrão é '%appDir%'
- %vendorDir%/mymodule
Os diretórios listados em scanDirs
não sobrescrevem o valor padrão %appDir%
, mas o complementam,
então scanDirs
conterá ambos os caminhos %appDir%
e %vendorDir%/mymodule
. Se quisermos
omitir o diretório padrão, usamos um ponto
de exclamação, que sobrescreve o valor:
application:
scanDirs!:
- %vendorDir%/mymodule
A varredura de diretórios pode ser desativada especificando o valor false. Não recomendamos suprimir completamente a adição automática de presenters, pois isso resultará em uma redução no desempenho da aplicação.
Templates Latte
Com esta configuração, o comportamento do Latte em componentes e presenters pode ser influenciado globalmente.
latte:
# exibir o painel Latte na Barra Tracy para o template principal (true) ou todos os componentes (all)?
debugger: ... # (true|false|'all') padrão é true
# gera templates com o cabeçalho declare(strict_types=1)
strictTypes: ... # (bool) padrão é false
# ativa o modo de [parser estrito |latte:develop#striktní režim]
strictParsing: ... # (bool) padrão é false
# ativa a [verificação do código gerado |latte:develop#Kontrola vygenerovaného kódu]
phpLinter: ... # (string) padrão é null
# define a localidade
locale: pt_BR # (string) padrão é null
# classe do objeto $this->template
templateClass: App\MyTemplateClass # padrão é Nette\Bridges\ApplicationLatte\DefaultTemplate
Se você estiver usando Latte versão 3, pode adicionar novas extensões usando:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Se você estiver usando Latte versão 2, pode registrar novas tags especificando o nome da classe ou uma referência a um
serviço. Por padrão, o método install()
é chamado, mas isso pode ser alterado especificando o nome de outro
método:
latte:
# registro de tags Latte personalizadas
macros:
- App\MyLatteMacros::register # método estático, nome da classe ou callable
- @App\MyLatteMacrosFactory # serviço com método install()
- @App\MyLatteMacrosFactory::register # serviço com método register()
services:
- App\MyLatteMacrosFactory
Roteamento
Configurações básicas:
routing:
# exibir o painel de roteamento na Barra Tracy?
debugger: ... # (bool) padrão é true
# serializa o roteador no contêiner DI
cache: ... # (bool) padrão é false
O roteamento geralmente é definido na classe RouterFactory. Alternativamente, as rotas também podem
ser definidas na configuração usando pares máscara: ação
, mas este método não oferece tanta variabilidade nas
configurações:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Constantes
Criação de constantes PHP.
constants:
Foobar: 'baz'
Após iniciar a aplicação, a constante Foobar
será criada.
Constantes não devem servir como variáveis globalmente disponíveis. Para passar valores para objetos, use injeção de dependência.
PHP
Configuração de diretivas PHP. Uma visão geral de todas as diretivas pode ser encontrada em php.net.
php:
date.timezone: Europe/Lisbon
Serviços DI
Estes serviços são adicionados ao contêiner de DI:
Nome | Tipo | Descrição |
---|---|---|
application.application |
Nette\Application\Application | iniciador de toda a aplicação |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | fábrica de presenters |
application.### |
Nette\Application\UI\Presenter | presenters individuais |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | fábrica do objeto Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | fábrica para $this->template |