uafrica/cakephp-newrelic

CakePHP <3 NewRelic

这个包的官方仓库似乎已消失,因此该包已被冻结。

安装次数: 33,011

依赖: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 12

公开问题: 0

类型:cakephp-plugin

1.0.0-beta2 2020-02-17 13:40 UTC

This package is auto-updated.

Last update: 2024-08-17 23:52:45 UTC


README

您可以按如下方式修改您的文件以获得完整的NewRelic支持。

这是一个https://github.com/jippi/cakephp-newrelic的分支。

包含内容

  • NewRelic.NewRelic 任务
  • NewRelic.NewRelic 组件
  • NewRelicTrait 特性
  • NewRelic.NewRelic

需求

安装

首先需要NewRelic插件。

composer require uafrica/cakephp-newrelic

然后加载插件

bin/cake plugin load NewRelic

Shell

自CakePHP 3.6以来,Shell已被弃用,但仍然可以使用。在 src/Shell/AppShell.php 中包含此代码片段,并确保所有Shell都扩展它。

	public function startup() {
		$this->NewRelic = $this->Tasks->load('NewRelic.NewRelic');
		$this->NewRelic->setName($this);
		$this->NewRelic->start();
		$this->NewRelic->parameter('params', json_encode($this->params));
		$this->NewRelic->parameter('args', json_encode($this->args));

		parent::startup();
	}

命令

不幸的是,命令不提供将代码注入所有命令的简单方法。提供了一个特性来处理NewRelic注入。

示例用法

<?php

namespace App\Command;

use Cake\Console\Arguments;
use Cake\Console\Command;
use Cake\Console\ConsoleIo;
use NewRelic\Traits\NewRelicTrait;

class ChannelsImportCommand extends Command
{
	use NewRelicTrait;

	public function execute(Arguments $args, ConsoleIo $io)
	{
		$this->setName($this);
		$this->setArguments($args);

		//Rest of your command code.
	}
}

控制器

只需将 NewRelic.NewRelic 添加到您的 $components 列表

中间件

您可以使用提供的 NewRelicErrorHandlerMiddleware,该中间件位于 NewRelic\Middleware\NewRelicErrorHandlerMiddleware 中,它扩展了内置的 Cake\Error\Middleware\ErrorHandlerMiddleware。通过使用它,您将获得NewRelic的工作并保留默认的CakePHP行为。

示例

<?php

namespace App;

use Cake\Http\BaseApplication;
use Cake\Routing\Middleware\AssetMiddleware;
use Cake\Routing\Middleware\RoutingMiddleware;

/**
 * Application setup class.
 *
 * This defines the bootstrapping logic and middleware layers you
 * want to use in your application.
 */
class Application extends BaseApplication
{
    /**
     * Setup the middleware your application will use.
     *
     * @param \Cake\Http\MiddlewareQueue $middleware The middleware queue to setup.
     * @return \Cake\Http\MiddlewareQueue The updated middleware.
     */
    public function middleware($middleware)
    {
        $middleware
            // Catch any exceptions in the lower layers,
            // and make an error page/response
            ->add(\NewRelic\Middleware\NewRelicErrorHandlerMiddleware::class)
            // Handle plugin/theme assets like CakePHP normally does.
            ->add(AssetMiddleware::class)
            // Apply routing
            ->add(RoutingMiddleware::class);

        return $middleware;
    }
}

?>