Configurazione delle Applicazioni
Panoramica delle opzioni di configurazione per le Applicazioni Nette.
Application
application:
# visualizzare il pannello "Nette Application" in Tracy BlueScreen?
debugger: ... # (bool) il default è true
# verrà chiamato l'error-presenter in caso di errore?
# ha effetto solo in modalità sviluppo
catchExceptions: ... # (bool) il default è true
# nome dell'error-presenter
errorPresenter: Error # (string|array) il default è 'Nette:Error'
# definisce alias per presenter e azioni
aliases: ...
# definisce le regole per la traduzione del nome del presenter in classe
mapping: ...
# i link errati non generano avvisi?
# ha effetto solo in modalità sviluppo
silentLinks: ... # (bool) il default è false
Dalla versione nette/application
3.2 è possibile definire una coppia di error-presenter:
application:
errorPresenter:
4xx: Error4xx # per l'eccezione Nette\Application\BadRequestException
5xx: Error5xx # per le altre eccezioni
L'opzione silentLinks
determina come Nette si comporta in modalità sviluppo quando la generazione di un link
fallisce (ad esempio perché il presenter non esiste, ecc.). Il valore predefinito false
significa che Nette genera
un errore E_USER_WARNING
. Impostandolo su true
si sopprime questo messaggio di errore. Nell'ambiente di
produzione, E_USER_WARNING
viene sempre generato. Questo comportamento può essere influenzato anche impostando la
variabile del presenter $invalidLinkMode.
Gli Alias semplificano il collegamento ai presenter usati frequentemente.
La Mappatura definisce le regole, secondo le quali dal nome del presenter si deriva il nome della classe.
Registrazione automatica dei presenter
Nette aggiunge automaticamente i presenter come servizi al container DI, il che accelera notevolmente la loro creazione. Come Nette trova i presenter può essere configurato:
application:
# cercare i presenter nella mappa delle classi di Composer?
scanComposer: ... # (bool) il default è true
# maschera a cui devono corrispondere il nome della classe e del file
scanFilter: ... # (string) il default è '*Presenter'
# in quali directory cercare i presenter?
scanDirs: # (string[]|false) il default è '%appDir%'
- %vendorDir%/mymodule
Le directory specificate in scanDirs
non sovrascrivono il valore predefinito %appDir%
, ma lo
completano, quindi scanDirs
conterrà entrambi i percorsi %appDir%
e %vendorDir%/mymodule
.
Se volessimo omettere la directory predefinita, useremmo un punto esclamativo, che sovrascrive il
valore:
application:
scanDirs!:
- %vendorDir%/mymodule
La scansione delle directory può essere disattivata specificando il valore false
. Non consigliamo di sopprimere
completamente l'aggiunta automatica dei presenter, perché altrimenti le prestazioni dell'applicazione diminuiranno.
Template Latte
Con questa impostazione è possibile influenzare globalmente il comportamento di Latte nei componenti e nei presenter.
latte:
# visualizzare il pannello Latte nella Tracy Bar per il template principale (true) o tutti i componenti (all)?
debugger: ... # (true|false|'all') il default è true
# genera template con l'intestazione declare(strict_types=1)
strictTypes: ... # (bool) il default è false
# attiva la modalità [parser rigoroso |latte:develop#striktní režim]
strictParsing: ... # (bool) il default è false
# attiva il [controllo del codice generato |latte:develop#Kontrola vygenerovaného kódu]
phpLinter: ... # (string) il default è null
# imposta la locale
locale: it_IT # (string) il default è null
# classe dell'oggetto $this->template
templateClass: App\MyTemplateClass # il default è Nette\Bridges\ApplicationLatte\DefaultTemplate
Se usi Latte versione 3, puoi aggiungere nuove estensioni usando:
latte:
extensions:
- Latte\Essential\TranslatorExtension(@Nette\Localization\Translator)
Se usi Latte versione 2, puoi registrare nuovi tag specificando il nome della classe o un riferimento a un servizio. Per
impostazione predefinita, viene chiamato il metodo install()
, ma questo può essere modificato specificando il nome
di un altro metodo:
latte:
# registrazione di tag Latte personalizzati
macros:
- App\MyLatteMacros::register # metodo statico, nomeclasse o callable
- @App\MyLatteMacrosFactory # servizio con metodo install()
- @App\MyLatteMacrosFactory::register # servizio con metodo register()
services:
- App\MyLatteMacrosFactory
Routing
Impostazioni di base:
routing:
# visualizzare il pannello di routing nella Tracy Bar?
debugger: ... # (bool) il default è true
# serializza il router nel container DI
cache: ... # (bool) il default è false
Il routing viene solitamente definito nella classe RouterFactory. In alternativa, le route possono essere
definite anche nella configurazione utilizzando coppie maschera: azione
, ma questo metodo non offre una così ampia
variabilità nelle impostazioni:
routing:
routes:
'detail/<id>': Admin:Home:default
'<presenter>/<action>': Front:Home:default
Costanti
Creazione di costanti PHP.
constants:
Foobar: 'baz'
Dopo l'avvio dell'applicazione, verrà creata la costante Foobar
.
Le costanti non dovrebbero servire come una sorta di variabili globalmente disponibili. Per passare valori agli oggetti, utilizza la dependency injection.
PHP
Impostazione delle direttive PHP. Una panoramica di tutte le direttive si trova su php.net.
php:
date.timezone: Europe/Rome
Servizi DI
Questi servizi vengono aggiunti al container DI:
Nome | Tipo | Descrizione |
---|---|---|
application.application |
Nette\Application\Application | avviatore dell'intera applicazione |
application.linkGenerator |
Nette\Application\LinkGenerator | LinkGenerator |
application.presenterFactory |
Nette\Application\PresenterFactory | factory per i presenter |
application.### |
Nette\Application\UI\Presenter | singoli presenter |
latte.latteFactory |
Nette\Bridges\ApplicationLatte\LatteFactory | factory dell'oggetto Latte\Engine |
latte.templateFactory |
Nette\Application\UI\TemplateFactory | factory per $this->template |