PHPackages                             knyga/yii-newrelic - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. knyga/yii-newrelic

ActiveApplication

knyga/yii-newrelic
==================

Wrapper around the New Relic PHP API.

0155PHP

Since Aug 30Pushed 10y ago1 watchersCompare

[ Source](https://github.com/knyga/yii-newrelic)[ Packagist](https://packagist.org/packages/knyga/yii-newrelic)[ RSS](/packages/knyga-yii-newrelic/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

yii-newrelic
============

[](#yii-newrelic)

Yii wrapper around the [New Relic](https://newrelic.com/) [PHP API](https://newrelic.com/docs/php/the-php-api).

Introduction
------------

[](#introduction)

yii-newrelic is a wrapper around the New Relic PHP API. Automatic tracking of module/controller/action ID's is supported. Automatic injection of timing header and footer also supported.

\###Requirements

- PHP 5.2+
- [New Relic for PHP](https://newrelic.com/docs/php/new-relic-for-php)
- One of the following OS's:
- Linux 2.6+, glibc 2.5+ with NPTL support
- OpenSolaris 10
- FreeBSD 7.3+
- MacOS/X 10.5+
- Apache 2.2 or 2.4 via mod\_php
- Intel CPU

\###Installation

1. Install the New Relic PHP driver on your web server per [New Relic For PHP](https://newrelic.com/docs/php/new-relic-for-php) instructions.
2. Install package via composer

- Install Composer to your project root:

    ```
    curl -sS https://getcomposer.org/installer | php
    ```
- Add a `composer.json` file to your project:

    ```
    {
      "require": {
        "knyga/yii-newrelic": "dev-master"
      }
    }
    ```
- Run the Composer installer:

    ```
    php composer.phar install
    ```

3. In main.php add line to define vendor path:

```
Yii::setPathOfAlias('vendor', dirname(__FILE__) . '/../../../vendor');

```

And add the following to 'components':

```
        'newRelic' => [
            'class' => 'vendor.knyga.yii-newrelic.YiiNewRelic',
        ],
        'clientScript' => [
            'class' => 'vendor.knyga.yii-newrelic.YiiNewRelicClientScript',
        ],

```

4. If you are using a script that subclasses `CClientScript`, instead of adding 'clientScript' to your 'components', you will instead need to orphan that extension's script and extend it from `YiiNewRelicClientScript` instead. To do so, change `extends CClientScript` to `extends YiiNewRelicClientScript`, and then add a line before that class declaration that says:

```
	Yii::import('vendor.knyga.yii-newrelic.YiiNewRelicClientScript');

```

Or add line to import block in your main.php:

```
    'import' => [
        'vendor.knyga.yii-newrelic.YiiNewRelicClientScript'
    ]

```

5. In main.php, add the following to the top-level array:

```
    'behaviors' => [
        'newRelic' => [
            'class' => 'vendor.knyga.yii-newrelic.behaviors.YiiNewRelicWebAppBehavior',
        ]
    ],

```

6. Create subclass of `CWebApplication`, e.g. `NewRelicApplication`.
7. In this new class, e.g. `NewRelicApplication`, add a method::

```
	public function beforeControllerAction($controller, $action) {
		Yii::app()->newRelic->setTransactionName($controller->id, $action->id);
		return parent::beforeControllerAction($controller, $action);
	}

```

8. To use your new subclassed `CWebApplication`, modify index.php similar to:

```
	$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();

```

9. In console.php, add the following to 'components':

```
	'newRelic' => [
		'class' => 'vendor.knyga.yii-newrelic.YiiNewRelic',
	],

```

10. In console.php, add the following to the top-level array:

```
	'behaviors' => [
		'newRelic' => [
			 'class' => 'vendor.knyga.yii-newrelic.behaviors.YiiNewRelicConsoleAppBehavior',
		],
	],

```

\###Features

- yii-newrelic automatically detects whether the New Relic PHP extension is properly installed.
- Automatic association of Yii module/controller/action ID's.
- Automatic injection of New Relic timing header/footer into your HTML layouts.
- Console commands also supported.

\###Usage

- TODO: Finish docs with use cases with YiiNewRelic API wrapper methods

\###Known issues and other comments

- A future release will aim to avoid needing to call YiiNewRelic::nameTransaction() via CWebApplication subclass. This seems to be the only reliable mechanism for determining the actual controller/action in use. An attempt was made to use Yii::app()-&gt;getUrlManager()-&gt;parseUrl(Yii::app()-&gt;getRequest()) in YiiNewRelicWebAppBehavior, but this does not seem to produce consistent results.
- Console apps currently only set the class name to YiiNewRelic::nameTransaction().
    A future release will attempt to include the action as well.
- Your contributions, as always, are greatly appreciated.

License
-------

[](#license)

Modified BSD License

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/2018b1cb1cfeba7430637ce78f33b8cdc4ed43df995f0000fd16a967897c596a?d=identicon)[knyga](/maintainers/knyga)

---

Top Contributors

[![waialualib](https://avatars.githubusercontent.com/u/107154016?v=4)](https://github.com/waialualib "waialualib (10 commits)")[![knyga](https://avatars.githubusercontent.com/u/3603431?v=4)](https://github.com/knyga "knyga (9 commits)")[![paul-veterinary](https://avatars.githubusercontent.com/u/264701457?v=4)](https://github.com/paul-veterinary "paul-veterinary (9 commits)")[![ptheofan](https://avatars.githubusercontent.com/u/880939?v=4)](https://github.com/ptheofan "ptheofan (1 commits)")

### Embed Badge

![Health badge](/badges/knyga-yii-newrelic/health.svg)

```
[![Health](https://phpackages.com/badges/knyga-yii-newrelic/health.svg)](https://phpackages.com/packages/knyga-yii-newrelic)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
