【问题标题】:Is my Doctrine setup properly setup for production?我的 Doctrine 设置是否为生产正确设置?
【发布时间】:2014-08-25 07:35:05
【问题描述】:

我使用 Doctrine 2 开发了一个网站,现在可以上线了。当我在项目开始时设置 Doctrine 时,我主要担心让它工作,那时我并不太担心性能。尽管如此,我并不需要痴迷的表现,但我有一种感觉,如果没有正确设置,使用 Doctrine 的事情会变得非常糟糕。我正在考虑代理类,我担心它们是在每次调用时生成的,这不好。我的代码如下所示:

$config=Setup::createConfiguration(FALSE);
...
$config->setProxyDir(__DIR__."/proxies");
$config->setAutoGenerateProxyClasses(false);
...
$em=\Doctrine\ORM\EntityManager::create($conn,$config);

这很有效。通过作品,我的意思是它的行为正确。我不认为它是优化的。

从教义手册中,它说setAutoGenerateProxyClasses

获取或设置代理类是否应该由 Doctrine 在运行时自动生成。如果设置为 FALSE,代理类必须通过教义命令行任务 generate-proxies 手动生成。生产环境的强烈推荐值为 FALSE。

因此,在我的设置下,预期的行为是,Doctrine 应该尝试从代理目录加载代理。我必须运行generate-proxies 命令才能将它们放在那里。

奇怪的是,即使我没有代理目录,它也能正常工作!因此,Doctrine 似乎仍然以某种方式即时生成代理。当然,我可以运行generate-proxies 并希望获得最好的结果,但我更愿意系统化一点。有没有办法确保 Doctrine 正在加载代理而不是生成它们?

【问题讨论】:

    标签: php doctrine-orm


    【解决方案1】:

    糟糕...我没有打电话给$config->setAutoGenerateProxyClasses(false);...false 来自一个变量,结果并不完全是false...当它实际上是false , Doctrine 拒绝自动创建代理,正如预期的那样。此外,还有来自 cli 的 orm:ensure-production-settings 命令。

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多