1

我使用 zf 工具创建了一个新的 ZF1 应用程序(1.12.0),如下所示:

zf create project test

然后我启用了如下布局:

zf enable layout

当我启用 newrelic 时,我得到了这个错误:

PHP Error:
Uncaught exception 'Zend_Layout_Exception' with message 'Invalid method 'getmodulename' called on layout action helper' /usr/local/zend/share/ZendFramework/library/Zend/Layout/Controller/Action/Helper/Layout.php : 184
4

1 回答 1

7

New Relic 命名 Zend 事务的方式是挂钩Zend_Controller_Plugin_Broker::routeShutdown()并查看该函数接收的单个参数(即请求)中的各种方法。该参数应该是一个具有多种方法的类:getModuleName()getControllerName()getActionName()。PHP 代理希望能够根据请求调用所有这些函数。

如果您对 Zend 框架安装进行了高度定制,您可能需要手动命名您的事务。在这种情况下,在您的 PHP INI 文件集中newrelic.framework = "none"和路由器的适当位置,调用newrelic_name_transaction(). 您可以通过确定您的请求对象没有这些标准功能的原因来避免这种情况。

发生这种情况的一个可能原因是您有一个不完整的重载插件路由器。

有关此 API 调用以及其他调用的更多信息,请参阅 New Relic KB:

https://newrelic.com/docs/php/new-relic-for-php

于 2013-05-21T17:25:15.313 回答