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

围绕New Relic PHP API的Yii包装器。

介绍

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

###安装

  1. 根据New Relic For PHP说明,在您的Web服务器上安装New Relic PHP驱动程序。

  2. 将此扩展放置在/protected/extensions/yii-newrelic/中。

  3. 在main.php中,将以下内容添加到'components'

	'newRelic' => array(
		'class' => 'ext.yii-newrelic.YiiNewRelic',
	),
	'clientScript' => array(
		'class' => 'ext.yii-newrelic.YiiNewRelicClientScript',
	),
  1. 如果您使用的是子类CClientScript的脚本,您不需要将'clientScript'添加到您的'components'中。相反,您需要将该扩展的脚本 orphan 并从YiiNewRelicClientScript扩展。要做到这一点,将extends CClientScript更改为extends YiiNewRelicClientScript,然后在类声明之前添加一行,表示
	Yii::import('ext.yii-newrelic.YiiNewRelicClientScript');
  1. 在main.php中,将以下内容添加到顶级数组
	'behaviors' => array(
		'onBeginRequest' => array(
			 'class' => 'ext.yii-newrelic.behaviors.YiiNewRelicWebAppBehavior',
		),
	),
  1. 创建CWebApplication的子类,例如NewRelicApplication

  2. 在这个新类中,例如NewRelicApplication,添加一个方法:

	public function beforeControllerAction($controller, $action) {
		Yii::app()->newRelic->setTransactionName($controller->id, $action->id);
		return parent::beforeControllerAction($controller, $action);
	}
  1. 要使用您的新子类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();
  1. 在console.php中,将以下内容添加到'components'
	'newRelic' => array(
		'class' => 'ext.yii-newrelic.YiiNewRelic',
	),
  1. 在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