Caution: You are browsing the legacy symfony 1.x part of this website.
Cover of the book Symfony 5: The Fast Track

Symfony 5: The Fast Track is the best book to learn modern Symfony development, from zero to production. +300 pages showcasing Symfony with Docker, APIs, queues & async tasks, Webpack, SPAs, etc.

Altri file di configurazione

1.2
Symfony version
1.4
Language

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 descrizione
  • path: Il percorso da autocaricare
  • recursive: Per cercare le classi PHP nelle sotto-cartelle
  • exclude: Un array di nomi di cartelle da escludere nella ricerca
  • prefix: Assegnare a true se le classi trovate nel percorso devono essere autocaricate solo per un dato modulo (valore predefinito false)
  • files: Un array di file di cui fare il parsing esplicitamente per le classi PHP
  • ext: 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.