travy/cake-tracking

CakePHP 3 应用程序中使用的请求跟踪中间件

安装: 9

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 2

分支: 0

开放问题: 0

类型:cakephp-plugin

1.0.0 2017-09-11 05:55 UTC

This package is not auto-updated.

Last update: 2024-09-18 20:59:35 UTC


README

Build Status

描述

蛋糕跟踪插件提供中间件,用于记录所有发送到Web应用的请求。所有日志都可以根据应用进行自定义,但还有一个默认的日志记录器,它会将日志写入文件系统。

此外,可以通过将地址添加到黑名单文件来阻止来自网站的IP地址。

安装

将包添加到您的 CakePHP 项目中 composer.json

composer require travy/cake-tracking:1.0

接下来,确保通过在命令提示符中执行以下命令将插件添加到 config/bootstrap.php 文件中

bin/cake plugin load cake-tracking

现在可以将中间件加载到应用管道中,只需将其附加到 `src/Application.php' 中的 MiddlewareQueue 即可

class Application extends BaseApplication
{
    public function middleware($middlewareQueue)
    {
        $middlewareQueue
            ->add(ErrorHandlerMiddleware::class)
            ->add(AssetMiddleware::class)
            ->add(new RoutingMiddleware($this))
                
            //  add the TrackingMiddleware to the queue
            ->add(new \CakeTracking\Middleware\TrackingMiddleware());

        return $middlewareQueue;
    }
}

最后,您应该能够添加任何必要的自定义配置来完成环境设置。

如果您想使用自定义日志记录器或黑名单解决方案(例如,将数据存储在数据库中),则只需创建一个实现 TrackingLoggerInterfaceBlacklistRepositoryInterface 的类。然后,在将中间件添加到 MiddlewareQueue 之前,可以使用内置的设置调用指定您的自定义类。

class Application extends BaseApplication
{
    public function middleware($middlewareQueue)
    {
        //  supply the custom classes to the TrackingMiddleware object
        $trackingMiddleware = new \CakeTracking\Middleware\TrackingMiddleware();
        $trackingMiddleware->setBlacklistRepository(new BlacklistDatabaseRepository($configs));
        $trackingMiddleware->setLoggingOperation(new TrackingDatabaseLoggin($configs));
    
        $middlewareQueue
            ->add(ErrorHandlerMiddleware::class)
            ->add(AssetMiddleware::class)
            ->add(new RoutingMiddleware($this))
                
            //  supply the instantiated tracker to the queue
            ->add($trackingMiddleware);

        return $middlewareQueue;
    }
}

配置

以下配置是可选的,但将有助于系统设置。

config/app.php 中添加以下内容

'CakeTracking' => [
    'LogFile' => LOGS . 'bamboo.txt',
    'Blacklist' => LOGS . 'blacklist.txt',
],

LogFile 配置将指定所有请求应记录的位置。

Blacklist 指定系统上黑名单的位置。