Documentação do Symfony2
Renderizada do repositório symfony-docs-pt-BR no Github

Configuração do DoctrineBundle (“doctrine”)

Visão Geral da Configuração

O exemplo de configuração a seguir mostra toda a configuração padrão que o ORM interpreta para:

doctrine:
    orm:
        auto_mapping: true
        # the standard distribution overrides this to be true in debug, false otherwise
        auto_generate_proxy_classes: false
        proxy_namespace: Proxies
        proxy_dir: "%kernel.cache_dir%/doctrine/orm/Proxies"
        default_entity_manager: default
        metadata_cache_driver: array
        query_cache_driver: array
        result_cache_driver: array

Existem muitas outras opções de configuração que você pode usar para sobrescrever certas classes, mas essas são somente para casos de uso avançados.

Fazendo Cache dos Drivers

Para realizar o cache dos drivers você pode especificar os valores “array”, “apc”, “memcache”, “memcached”, “xcache” ou “service”.

O exemplo a seguir mostra uma visão geral das configurações de cache:

doctrine:
    orm:
        auto_mapping: true
        metadata_cache_driver: apc
        query_cache_driver:
            type: service
            id: my_doctrine_common_cache_service
        result_cache_driver:
            type: memcache
            host: localhost
            port: 11211
            instance_class: Memcache

Mapeando a Configuração

Definir explicitamente todas as entidades mapeadas é a única configuração necessário para o ORM e existem diversas outras opções de configurações que você pode controlar. As configurações abaixo existem para o mapeamento.

  • type Em annotation, xml, yml, php ou staticphp. Especifica que tipo de metadado seu mapeamento usa.
  • dir Caminho para o mapeamento ou para os arquivos de entidades (dependendo do driver utilizado). Se esse caminho for relativo assume-se que ele seja relativo à raiz do bundle. Isso somente irá funcionar se o nome do mapeamento for o mesmo nome do próprio Bundle. Se você quiser usar essa opção para especificar um caminho absoluto você deve prefixar esse caminho com os parâmetros de kernel que existe no DIC (por exemplo %kernel.root_dir%).
  • prefix Um prefixo comum que todas as entidades desse mapeamento compartilham share. This prefix should never conflict with prefixes of other defined mappings otherwise some of your entities cannot be found by Doctrine. This option defaults to the bundle namespace + Entity, for example for an application bundle called AcmeHelloBundle prefix would be Acme\HelloBundle\Entity.
  • alias O Doctrine oeferece uma forma para apelidar os nomes das entidades para algo mais simples, ou seja, nomes mais curtos que serão usados nas instruções DQL ou no acesso através dos repositórios. Ao usar um bundle o apelido padrão é igual ao nome do bundle.
  • is_bundle Essa opção é uma valor derivado de dir e true caso o diretório seja relativo, sendo verificado por um retorno false do método file_exists(). Ele será falso se a verificação através do método retornar true. Nesse caso um caminho absoluto foi especificado e os arquivos de metadados provavelmente estarão em algum diretório exterior ao bundle.

Configurações do Doctrine DBAL

O DoctrineBundle suporta todos os parametros que os drivers padrões do doctrine aceitam, convertidos para os padrões de XML ou YAML encorajados pelo Symfony. Veja a seção DBAL documentation para maiores informações. O bloco a seguir mostra todas as possiveis configurações:

Caso você queira configurar multiplas conecções com YAML, coloque-as dentro da chave connections e forneça a elas um nome unico:

doctrine:
    dbal:
        default_connection:       default
        connections:
            default:
                dbname:           Symfony2
                user:             root
                password:         null
                host:             localhost
            customer:
                dbname:           customer
                user:             root
                password:         null
                host:             localhost

O serviço database_connection sempre se refere a conexão default, que a primeira definida ou a que esteja configurada através do parâmetro default_connection.

Cada conexão também pode ser acessada pelo serviço doctrine.dbal.[name]_connection onde [name] deve ser substituído pelo nome da conexão.