有很多类似的问题的例子围绕网络散布,但他们的解决方案似乎没有解决这个特定的变化。任何建议,将不胜感激。Zend_Session和Zend_Log _Db都为每个页面加载写入数据库两次
通常会出现此问题,因为非法链接正在导致对像favicon或css文件这样的资源的请求多次触发调度程序,从而导致多个调度过程并因此导致数据库中有多行。
我检查过这个非常简单的示例页面上的所有链接都确实解析为它们指向的资源。
会话处理器的设置如下:
Zend_Db_Table_Abstract::setDefaultAdapter($db);
Zend_Session::setSaveHandler(new
Zend_Session_SaveHandler_DbTable($config->session->toArray()));
的DB的日志记录的设置如下:
$writer = new Zend_Log_Writer_Db($db, $config->log->tableName,
$config->log->columnMap->toArray());
$logger = new Zend_Log($writer);
这两个对象是正确的设置,可以读取和写入,并从数据库中。只有一切发生两次。如果我在应用程序中的任何位置放置测试日志消息,它将被写入数据库两次。如果每次调用索引操作时增加三个变量 - 一个存储在会话中,一个通过Zend_Registry对象传递,另一个本地传递给indexAction - 只有会话变量增加2. Apache访问日志显示正确的数量的来自页面加载的请求被触发,并且全部具有200或304(不变)的良好响应代码。
我试过禁用所有头部链接。 我已经尝试完全禁用布局。 我已将本地化的所有内容都发送到调度程序,并在调度运行之前退出。
在所有情况下都会发生额外的写/增量。 有什么想法? 在此先感谢您的帮助。