Nette Documentation Preview

syntax
Configuração da aplicação
*************************

.[perex]
Visão geral das opções de configuração para a Aplicação Nette.


Aplicação .[#toc-application]
=============================

```neon
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:

```neon
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 |creating-links#Invalid Links].

[Os apelidos simplificam a referência a |creating-links#aliases] apresentadores usados com frequência.

O [mapeamento define as regras |modules#mapping] pelas quais o nome da classe é derivado do nome do apresentador.


Registro automático dos apresentadores .[#toc-automatic-registration-of-presenters]
-----------------------------------------------------------------------------------

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:

```neon
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 |dependency-injection:configuration#Merging]:

```neon
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 .[#toc-latte]
===================

Este cenário afeta globalmente o comportamento do Latte em componentes e apresentadores.

```neon
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 |latte:creating-extension] usando:

```neon
latte:
	extensions:
		- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
```

/--comment











\--


Roteiro .[#toc-routing]
=======================

Configurações básicas:

```neon
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 |routing#Route Collection]. 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:

```neon
routing:
	routes:
		'detail/<id>': Admin:Home:default
		'<presenter>/<action>': Front:Home:default
```


Constantes .[#toc-constants]
============================

Criação de constantes PHP.

```neon
constants:
	Foobar: 'baz'
```

A constante `Foobar` será criada após o início das operações.

.[note]
As constantes não devem servir como variáveis disponíveis globalmente. Para passar valores a objetos, use a [injeção de dependência |dependency-injection:passing-dependencies].


PHP
===

Você pode definir diretrizes PHP. Uma visão geral de todas as diretivas pode ser encontrada em [php.net |https://www.php.net/manual/en/ini.list.php].

```neon
php:
	date.timezone: Europe/Prague
```


Serviços DI .[#toc-di-services]
===============================

Esses serviços são adicionados ao contêiner DI:

| Nome | Tipo | Descrição
|----------------------------------------------------------
| `application.application` | [api:Nette\Application\Application] | [lançador de aplicativos completo |how-it-works#Nette Application]
| `application.linkGenerator` | [api:Nette\Application\LinkGenerator] | [LinkGenerator |creating-links#LinkGenerator]
| `application.presenterFactory` | [api:Nette\Application\PresenterFactory] | fábrica de apresentadores
| `application.###` | [api:Nette\Application\UI\Presenter] | apresentadores individuais
| `latte.latteFactory` | [api:Nette\Bridges\ApplicationLatte\LatteFactory] | factory for `Latte\Engine`
| `latte.templateFactory` | [api:Nette\Application\UI\TemplateFactory] | fábrica para [`$this->template` |templates]

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.

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