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 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.

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

	# 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

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
versão: 4.0