/
configuration.texy
188 lines (122 loc) · 6.34 KB
/
configuration.texy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
Configurazione dell'applicazione
********************************
.[perex]
Panoramica delle opzioni di configurazione dell'applicazione Nette.
Applicazione .[#toc-application]
================================
```neon
application:
# mostra il pannello "Applicazione Nette" in Tracy BlueScreen?
debugger: ... # (bool) predefinito a true
# Il presentatore di errori sarà chiamato su un errore?
# ha effetto solo in modalità sviluppatore
catchExceptions: ... # (bool) predefinito a true
# nome del presentatore di errori
errorPresenter: Error # (string|array) predefinito a 'Nette:Error'.
# definisce gli alias per i presentatori e gli eventi
aliases: ...
# definisce le regole per risolvere il nome del presentatore in una classe
mapping: ...
# I collegamenti errati generano avvisi?
# ha effetto solo in modalità sviluppatore
silentLinks: ... # (bool) predefinito a false
```
Dalla versione 3.2 di `nette/application` è possibile definire una coppia di presentatori di errori:
```neon
application:
errorPresenter:
4xx: Error4xx # per NetteApplicationBadRequestException
5xx: Error5xx # per altre eccezioni
```
L'opzione `silentLinks` determina il comportamento di Nette in modalità sviluppatore quando la generazione dei collegamenti fallisce (ad esempio, perché non c'è un presentatore, ecc.). Il valore predefinito `false` significa che Nette attiva `E_USER_WARNING`. L'impostazione di `true` sopprime questo messaggio di errore. In un ambiente di produzione, `E_USER_WARNING` viene sempre invocato. Si può anche influenzare questo comportamento impostando la variabile del presentatore [$invalidLinkMode |creating-links#Invalid Links].
Gli [pseudonimi semplificano il riferimento ai |creating-links#aliases] presentatori utilizzati di frequente.
La [mappatura definisce le regole |modules#mapping] con cui il nome della classe viene derivato dal nome del presentatore.
Registrazione automatica dei presentatori .[#toc-automatic-registration-of-presenters]
--------------------------------------------------------------------------------------
Nette aggiunge automaticamente i presentatori come servizi al contenitore DI, velocizzando notevolmente la loro creazione. Il modo in cui Nette trova i presentatori può essere configurato:
```neon
application:
# per cercare i presentatori nella mappa delle classi di Composer?
scanComposer: ... # (bool) predefinito a true
# una maschera che deve corrispondere alla classe e al nome del file
scanFilter: ... # (string) predefinito a '*Presenter'.
# in quali directory cercare i presentatori?
scanDirs: # (string[]|false) predefinito a '%appDir%'.
- %vendorDir%/mymodule
```
Le directory elencate in `scanDirs` non sovrascrivono il valore predefinito `%appDir%`, ma lo integrano, quindi `scanDirs` conterrà entrambi i percorsi `%appDir%` e `%vendorDir%/mymodule`. Se si vuole sovrascrivere la directory predefinita, si usa il [punto esclamativo |dependency-injection:configuration#Merging]:
```neon
application:
scanDirs!:
- %vendorDir%/mymodule
```
La scansione delle directory può essere disattivata impostando false. Non si consiglia di sopprimere completamente l'aggiunta automatica dei presentatori, altrimenti le prestazioni dell'applicazione saranno ridotte.
Latte .[#toc-latte]
===================
Questa impostazione influenza globalmente il comportamento di Latte nei componenti e nei presentatori.
```neon
latte:
# mostra il pannello Latte nella barra Tracy per il modello principale (true) o per tutti i componenti (all)?
debugger: ... # (true|false|'all') predefinito a true
# genera modelli con declare(strict_types=1)
strictTypes: ... # (bool) predefinito a false
# abilita la [modalità di parser rigoroso |latte:develop#strict mode]
strictParsing: ... # (bool) l'impostazione predefinita è false
# abilita il [controllo del codice generato |latte:develop#Checking Generated Code]
phpLinter: ... # (stringa) il valore predefinito è null
# classe di $this->template
templateClass: App\MyTemplateClass # predefinita a Nette\Bridges\ApplicationLatte\DefaultTemplate
```
Se si utilizza la versione 3 di Latte, è possibile aggiungere nuove [estensioni |latte:creating-extension] utilizzando:
```neon
latte:
extensions:
- Latte\Essential\TranslatorExtension
```
/--comment
\--
Instradamento .[#toc-routing]
=============================
Impostazioni di base:
```neon
routing:
# mostra il pannello di instradamento nella barra Tracy?
debugger: ... # (bool) predefinito a true
# per serializzare il router nel contenitore DI?
cache: ... # (bool) predefinito a false
```
Il router è solitamente definito nella classe [RouterFactory |routing#Route Collection]. In alternativa, i router possono essere definiti nella configurazione usando le coppie `mask: action`, ma questo metodo non offre un'ampia gamma di impostazioni:
```neon
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
```
Costanti .[#toc-constants]
==========================
Creare costanti PHP.
```neon
constants:
Foobar: 'baz'
```
La costante `Foobar` viene creata dopo l'avvio.
.[note]
Le costanti non dovrebbero servire come variabili disponibili a livello globale. Per passare valori agli oggetti, usare l'[iniezione di dipendenza |dependency-injection:passing-dependencies].
PHP
===
È possibile impostare le direttive PHP. Una panoramica di tutte le direttive si trova su [php.net |https://www.php.net/manual/en/ini.list.php].
```neon
php:
date.timezone: Europe/Prague
```
Servizi DI .[#toc-di-services]
==============================
Questi servizi vengono aggiunti al contenitore DI:
| Nome | Tipo | Descrizione
|----------------------------------------------------------
| `application.application` | [api:Nette\Application\Application] | [full application launcher |how-it-works#Nette Application]
| `application.linkGenerator` | [api:Nette\Application\LinkGenerator] | [LinkGenerator |creating-links#LinkGenerator]
| `application.presenterFactory` | [api:Nette\Application\PresenterFactory] | presenter factory
| `application.###` | [api:Nette\Application\UI\Presenter] | singoli presentatori
| `latte.latteFactory` | [api:Nette\Bridges\ApplicationLatte\LatteFactory] | fabbrica per `Latte\Engine`
| `latte.templateFactory` | [api:Nette\Application\UI\TemplateFactory] | fabbrica per [`$this->template` |templates]