假设我在Doctrine2中有两个相互关联的实体,Models\User和Models\Comment.如果我在Doctrine 2.0.0中这样做...
<?php
// $em instanceof EntityManager, $user instanceof Models\User
$comments = $em->getRepository('Models\Comment')
->findBy(array('user' => $user, 'public' => true));
Run Code Online (Sandbox Code Playgroud)
...我收到一个PHP错误:
严重性:注意
消息:类的对象模型\用户到字符串转换
文件名:DBAL/Connection.php
行号:574
这不应该发生,对吧?如果我使用QueryBuilder和setParameter('user',$ user),它将按预期工作.
我在VirtualBox上运行Debian的虚拟副本,在nginx/php5-fpm/MySQL堆栈上开发一个更大的PHP应用程序.开发在主机操作系统(Windows 7 x64)中进行,代码作为共享文件夹安装在客户操作系统中.
表现非常糟糕.以下是本机vbox文件系统的webgrind输出和带cifs的samba安装:

在这两种情况下filemtime,file_exists并is_readable需要几秒钟才能运行.CPU负载非常高,内存使用率似乎正常.
是不是所有这三个函数的输出都缓存在stat缓存中?他们为什么要这么久?
我真的很感激我能得到任何帮助!
编辑:为了澄清,生产性能很好.在我们的(适当的,非虚拟的)登台服务器上,PHP代码在生产设置中最多执行约60ms,在开发模式下执行100-200ms.
我需要帮助弄清楚为什么VirtualBox在开发和生产模式下要慢100倍.
我刚检查,生产设置产生约5秒执行.仍然无法使用,加上开发的尴尬.