Questo capitolo descrive altri file di configurazione, che raramente necessitano di essere cambiati.
autoload.yml
La configurazione autoload.yml
determina quali cartelle necessitano di essere
caricate automaticamente da symfony. Ogni cartella è analizzata alla ricerca di classi e
interfacce PHP.
Come discusso in sede di introduzione, il file autoload.yml
trae beneficio dal
meccanismo di configurazione a cascata e
può includere costanti.
note
Il file di configurazione autoload.yml
è messo in cache come file PHP; il
processo è gestito automaticamente dalla classe
sfAutoloadConfigHandler
.
La configurazione predefinita va bene per la maggior parte dei progetti:
autoload: # project project: name: project path: %SF_LIB_DIR% recursive: on exclude: [model, symfony] project_model: name: project model path: %SF_LIB_DIR%/model recursive: on # application application: name: application path: %SF_APP_LIB_DIR% recursive: on modules: name: module path: %SF_APP_DIR%/modules/*/lib prefix: 1 recursive: on
Ogni configurazione ha un nome e deve essere assegnato con una chiave che ha quel nome. Questo consente di sovrascrivere la configurazione predefinita.
tip
Come si può vedere, la cartella lib/vendor/symfony/
è esclusa per impostazione predefinita,
dal momento che symfony utilizza un diverso meccanismo di autocaricamento per le classi del core.
Diverse chiavi possono essere usate per personalizzare il comportamento dell'autocaricamento:
name
: Una descrizionepath
: Il percorso da autocaricarerecursive
: Per cercare le classi PHP nelle sotto-cartelleexclude
: Un array di nomi di cartelle da escludere nella ricercaprefix
: Assegnare atrue
se le classi trovate nel percorso devono essere autocaricate solo per un dato modulo (valore predefinitofalse
)files
: Un array di file di cui fare il parsing esplicitamente per le classi PHPext
: L'estensione delle classi PHP (valore predefinito.php
)
Per esempio, se si incorpora una grossa libreria all'interno del progetto sotto la
cartella lib/
e se essa già supporta l'autocaricamento, si può escluderla
dal sistema di autocaricamento predefinito di symfony per beneficiare di un aumento
delle prestazioni, modificando la configurazione project
di autocaricamento:
autoload: project: name: project path: %SF_LIB_DIR% recursive: on exclude: [model, symfony, vendor/large_lib]
config_handlers.yml
Il file di configurazione config_handlers.yml
descrive la configurazione
usata per gestire le classi usate per analizzare e interpretare tutti gli altri file di
configurazione YAML. Di seguito la configurazione predefinita usata per caricare il file
di configurazione settings.yml
:
config/settings.yml: class: sfDefineEnvironmentConfigHandler param: prefix: sf_
Ogni file di configurazione è definito da una classe (la voce class
) e può essere
ulteriormente personalizzato definendo alcuni parametri sotto la sezione param
.
Il file predefinito config_handlers.yml
definisce le classi da analizzare come segue:
File di configurazione | Config classe Handler |
---|---|
autoload.yml |
sfAutoloadConfigHandler |
databases.yml |
sfDatabaseConfigHandler |
settings.yml |
sfDefineEnvironmentConfigHandler |
app.yml |
sfDefineEnvironmentConfigHandler |
factories.yml |
sfFactoryConfigHandler |
core_compile.yml |
sfCompileConfigHandler |
filters.yml |
sfFilterConfigHandler |
routing.yml |
sfRoutingConfigHandler |
generator.yml |
sfGeneratorConfigHandler |
view.yml |
sfViewConfigHandler |
security.yml |
sfSecurityConfigHandler |
cache.yml |
sfCacheConfigHandler |
module.yml |
sfDefineEnvironmentConfigHandler |
core_compile.yml
Il file di configurazione core_compile.yml
descrive i file PHP che sono
uniti in un unico grosso file nell'ambiente prod
, per velocizzare il tempo
necessario a symfony per caricare. Per impostazione predefinita, le principali classi del core di symfony
sono definite in questo file di configurazione. Se l'applicazione si basa su alcune classi
che necessitano di essere caricate per ogni richiesta, è possibile creare un file di
configurazione core_compile.yml
nel progetto o applicazione e aggiungerli ad esso. Questo è
un estratto della configurazione predefinita:
- %SF_SYMFONY_LIB_DIR%/autoload/sfAutoload.class.php - %SF_SYMFONY_LIB_DIR%/action/sfComponent.class.php - %SF_SYMFONY_LIB_DIR%/action/sfAction.class.php - %SF_SYMFONY_LIB_DIR%/action/sfActions.class.php
Come discusso in sede di introduzione, il file core_compile.yml
beneficia del
meccanismo di configurazione a cascata e
può includere costanti.
note
Il file di configurazione core_compile.yml
è messo in cache come file PHP; il
processo è gestito automaticamente dalla classe
sfCompileConfigHandler
.
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.