Bri*_*ian 7 php frameworks url-rewriting slim newrelic
我刚刚在我的PHP Web应用程序上设置了New Relic.除了一件事之外,一切都很好......所有的交易都显示为"index.php".
这样做的原因是因为我使用了超薄框架(也有 很多 的替代品 用于 路由)与URL重写,这样我就可以有很好的人力网址,如"/用户/设置",而不对每个控制器和动作的文件夹.
但这仍然是我index.php每个New Relic网络交易的名称.
它花了我一些搜索,但我能找到一个与CodeIgniter相关的答案(可在此处获得).
一点修改使它适用于我(使用Slim),我想其他PHP路由器和框架将具有大致相同的解决方案:
if (extension_loaded ('newrelic')) {
newrelic_name_transaction($_SERVER['REQUEST_URI']);
}
Run Code Online (Sandbox Code Playgroud)
编辑:为避免包含任何GET参数,请在第二行使用此参数:
newrelic_name_transaction(current(explode('?', $_SERVER['REQUEST_URI'])))
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用Slim,艾默生的答案,他建议使用路由模式,是比使用文字URL更好的选择.
您可以使用挂钩将事务名称设置为路由器的名称或模式.
以下是将其设置为模式的示例:
$app->hook('slim.before.dispatch', function() use ($app) {
newrelic_name_transaction($app->router()->getCurrentRoute()->getPattern());
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |