启用新relic时,Zend Framework崩溃

时间:2013-05-21 10:25:17

标签: php zend-framework layout newrelic zend-server

我使用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

1 个答案:

答案 0 :(得分:7)

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

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

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

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

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