Configurazione dell'applicazione
Panoramica delle opzioni di configurazione dell'applicazione Nette.
Applicazione
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:
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.
Gli pseudonimi semplificano il riferimento ai presentatori utilizzati di frequente.
La mappatura definisce le regole con cui il nome della classe viene derivato dal nome del presentatore.
Registrazione automatica dei presentatori
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:
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:
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
Questa impostazione influenza globalmente il comportamento di Latte nei componenti e nei presentatori.
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: ... # (string) il valore predefinito è null
# imposta il locale
locale: cs_CZ # (string) 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 utilizzando:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Instradamento
Impostazioni di base:
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. In alternativa,
i router possono essere definiti nella configurazione usando le coppie mask: action
, ma questo metodo non offre
un'ampia gamma di impostazioni:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Costanti
Creare costanti PHP.
constants:
Foobar: 'baz'
La costante Foobar
viene creata dopo l'avvio.
Le costanti non dovrebbero servire come variabili disponibili a livello globale. Per passare valori agli oggetti, usare l'iniezione di dipendenza.
PHP
È possibile impostare le direttive PHP. Una panoramica di tutte le direttive si trova su php.net.
php:
date.timezone: Europe/Prague
Servizi DI
Questi servizi vengono aggiunti al contenitore DI:
Nome | Tipo | Descrizione |
---|---|---|
application.application |
Nette\Application\Application | full application launcher |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | presenter factory |
application.### |
Nette\Application\UI\Presenter | singoli presentatori |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | fabbrica per Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | fabbrica per $this->template |