uafrica / cakephp-newrelic
CakePHP <3 NewRelic
这个包的官方仓库似乎已消失,因此该包已被冻结。
1.0.0-beta2
2020-02-17 13:40 UTC
Requires
- php: >= 7.2.0
- cakephp/cakephp: ^4.0
Requires (Dev)
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
需求
- New Relic PHP 代理 已作为PHP模块安装
安装
首先需要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; } } ?>