gpt4 book ai didi

zend-framework - 如何在 Doctrine 中不使用 CLI 手动生成代理?

转载 作者:行者123 更新时间:2023-12-01 17:26:04 26 4
gpt4 key购买 nike

我正在使用 Zend Framework 创建一个 Web 应用程序。基于一些建议,我选择 Doctrine 作为我的 RDBM 系统。

;---------------------------------------------------
; DOCTRINE CONFIGURATION
;---------------------------------------------------
resources.entityManager.connection.driver = "pdo_mysql"
resources.entityManager.connection.host = "localhost"
resources.entityManager.connection.dbname = "private"
resources.entityManager.connection.user = "private"
resources.entityManager.connection.password = "private"
resources.entityManager.connection.entities = APPLICATION_PATH "/models"
resources.entityManager.connection.proxies.location = APPLICATION_PATH "/models/Proxies"
resources.entityManager.connection.proxies.ns = "Proxies"

; According to Doctrine manual, this should be true for
; development, and false for production
resources.entityManager.connection.proxies.generate = true

以上是我在 Zend application.ini 中的 Doctrine 配置。一切工作正常,但出于多种原因,我想提前了解如何在不使用 CLI 的情况下手动生成代理。首先,Doctrine 2.0 文档提到自动生成代理会导致性能问题。其次,我仍然不知道如何使用 Doctrine CLI,特别是我已将项目开发转移到共享服务器框而无需命令提示符访问。

我一直通过创建类来手动生成 Doctrine 实体。如何类似地手动生成 Doctrine 代理?

最佳答案

我找到了生成代理的简单方法:

    $proxyDir = null; //to genearate to default proxy dir
$proxyFactory = $em->getProxyFactory();
$metadatas = $em->getMetadataFactory()->getAllMetadata();
$proxyFactory->generateProxyClasses($metadatas, $proxyDir);

要生成实体,请使用:

    $classes = $em->getClassMetadataFactory()->getAllMetadata();
$generator = new \Doctrine\ORM\Tools\EntityGenerator();
$generator->setGenerateAnnotations(true);
$generator->setGenerateStubMethods(true);
$generator->setRegenerateEntityIfExists(false);
$generator->setUpdateEntityIfExists(true);
$generator->generate($classes, '/path/to/generate/entities');

关于zend-framework - 如何在 Doctrine 中不使用 CLI 手动生成代理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com