charlesportwoodii / yii-newrelic
围绕New Relic PHP API的Yii包装器
1.0.1
2015-03-24 17:41 UTC
This package is auto-updated.
Last update: 2024-09-26 06:01:53 UTC
README
介绍
yii-newrelic是围绕New Relic PHP API的包装器。支持模块/控制器/操作ID的自动跟踪。也支持自动注入时间头和尾。
###要求
- PHP 5.2+
- New Relic for PHP
- 以下操作系统之一
- Linux 2.6+, glibc 2.5+支持NPTL
- OpenSolaris 10
- FreeBSD 7.3+
- MacOS/X 10.5+
- 通过mod_php的Apache 2.2或2.4
- Intel CPU
###安装
-
根据New Relic For PHP说明,在您的Web服务器上安装New Relic PHP驱动程序。
-
将此扩展放置在/protected/extensions/yii-newrelic/中。
-
在main.php中,将以下内容添加到'components'
'newRelic' => array(
'class' => 'ext.yii-newrelic.YiiNewRelic',
),
'clientScript' => array(
'class' => 'ext.yii-newrelic.YiiNewRelicClientScript',
),
- 如果您使用的是子类
CClientScript
的脚本,您不需要将'clientScript'添加到您的'components'中。相反,您需要将该扩展的脚本 orphan 并从YiiNewRelicClientScript
扩展。要做到这一点,将extends CClientScript
更改为extends YiiNewRelicClientScript
,然后在类声明之前添加一行,表示
Yii::import('ext.yii-newrelic.YiiNewRelicClientScript');
- 在main.php中,将以下内容添加到顶级数组
'behaviors' => array(
'onBeginRequest' => array(
'class' => 'ext.yii-newrelic.behaviors.YiiNewRelicWebAppBehavior',
),
),
-
创建
CWebApplication
的子类,例如NewRelicApplication
。 -
在这个新类中,例如
NewRelicApplication
,添加一个方法:
public function beforeControllerAction($controller, $action) {
Yii::app()->newRelic->setTransactionName($controller->id, $action->id);
return parent::beforeControllerAction($controller, $action);
}
- 要使用您的新子类
CWebApplication
,修改index.php类似
$config=dirname(__FILE__).'/../protected/config/main.php';
require_once(dirname(__FILE__).'/../yii-1.1.12.b600af/framework/yii.php');
require_once(dirname(__FILE__).'/../protected/components/system/PromocastApplication.php');
$app = new NewRelicApplication($config);
$app->run();
- 在console.php中,将以下内容添加到'components'
'newRelic' => array(
'class' => 'ext.yii-newrelic.YiiNewRelic',
),
- 在console.php中,将以下内容添加到顶级数组
'behaviors' => array(
'onBeginRequest' => array(
'class' => 'ext.yii-newrelic.behaviors.YiiNewRelicConsoleAppBehavior',
),
'onEndRequest' => array(
'class' => 'ext.yii-newrelic.behaviors.YiiNewRelicConsoleAppBehavior',
),
),
###功能
- yii-newrelic自动检测New Relic PHP扩展是否正确安装。
- 自动关联Yii模块/控制器/操作ID。
- 自动将New Relic时间头/尾注入到您的HTML布局中。
- 也支持控制台命令。
###使用
- 待办事项:完成带有YiiNewRelic API包装器方法用例的文档
###已知问题和其他评论
- 未来的版本将试图避免通过CWebApplication子类调用YiiNewRelic::nameTransaction()。这似乎是确定实际控制器/操作的唯一可靠机制。在YiiNewRelicWebAppBehavior中尝试使用Yii::app()->getUrlManager()->parseUrl(Yii::app()->getRequest()),但似乎无法产生一致的结果。
- 控制台应用程序当前仅将类名设置为YiiNewRelic::nameTransaction()。
未来的版本将尝试包含操作。 - 您的贡献,一如既往,非常受赞赏。
许可证
修改后的BSD许可证 https://github.com/gtcode/yii-newrelic