Symfony:auto_mapping和auto_generate_proxy_classes是什么意思

Nic*_*zol 14 symfony doctrine-orm

配置使用:

doctrine:
dbal:
  driver:   "%database_driver%"
   ....
orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: true
Run Code Online (Sandbox Code Playgroud)

这是什么意思auto_mapping?它用于大量的真假的例子,没有精确的描述.代理生成何时发生,如果它不是自动的?通过doctrine命令行工具?

qoo*_*mao 11

auto_mapping是doctrine将自动从bundle Resources/config/doctrine目录加载映射的地方.

将其设置为false意味着您需要自己加载映射.如果您有实体的映射而不是要覆盖的供应商包中的映射超类,则可以很方便.

你可以通过陈述doctrine配置中的映射来做到这一点......

doctrine:
    orm:
        entity_managers:
            default:
                mappings:
                    AcmeUnknownBundle:
                        mapping:              true
                        type:                 yml
                        dir:                  "Resources/config/doctrine"
                        alias:                ~
                        prefix:               Acme\UnknownBundle\Entity
                        is_bundle:            true
Run Code Online (Sandbox Code Playgroud)

将它们添加到某种映射中通过 ......

class AcmeUnknownBundle extends Bundle
{
    public function build(ContainerBuilder $container)
    {
        parent::build($container);
        // ...

        $modelDir = realpath(__DIR__.'/Resources/config/doctrine/model');
        $mappings = array(
            $modelDir => 'Acme\UnknownBundle\Model',
        );

        $ormCompilerClass = 'Doctrine\Bundle\DoctrineBundle\DependencyInjection\Compiler\DoctrineOrmMappingsPass';
        if (class_exists($ormCompilerClass)) {
            $container->addCompilerPass(
                DoctrineOrmMappingsPass::createYamlMappingDriver(
                    $mappings,
                    array('acme_unknown.model_manager_name'),
                    true
            ));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您还可以回答一下有关代理的问题吗?:) (5认同)