PHPackages                             finntenzor/think-report - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. finntenzor/think-report

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

finntenzor/think-report
=======================

A simple reporter for ThinkPHP v5.1

v1.1.1(7y ago)0681Apache-2.0PHP

Since Nov 30Pushed 7y ago1 watchersCompare

[ Source](https://github.com/finntenzor/think-report)[ Packagist](https://packagist.org/packages/finntenzor/think-report)[ RSS](/packages/finntenzor-think-report/feed)WikiDiscussions master Synced yesterday

READMEChangelog (3)DependenciesVersions (4)Used By (0)

think-report
============

[](#think-report)

A simple reporter for ThinkPHP v5.1 基于ThinkPHP v5.1的简易错误报告工具

你是否遇到上线的项目需要debug，但是又因为打开debug配置等同于让自己的应用“裸奔”而苦恼？那么你一定需要试试这个。

如何使用
----

[](#如何使用)

### 使用异常处理

[](#使用异常处理)

在你的ThinkPHP项目中，找到config/app.php。在大概最后一行的位置找到“exception\_handle”配置，将它修改为“\\\\finntenzor\\\\report\\\\ExceptionHandle”，如：

```
    // 异常处理handle类 留空使用 \think\exception\Handle
    'exception_handle'       => '\\finntenzor\\report\\ExceptionHandle',
```

### 修改路由

[](#修改路由)

在你的ThinkPHP项目中，找到route/route.php。在你需要的位置添加如下代码：

```
\finntenzor\report\Report::route('reports');
```

它某种意义上等价于自动编写一个Group以及对应的两个路由：

```
Route::group('reports', function () {
    Route::get('/:id', 'finntenzor/reports/getReportById');
    Route::get('/', 'finntenzor/reports/getReportList');
});
```

因此你可以很轻松地将它和其他路由混合在一起：

```
use finntenzor\report\Report;

Route::group('app', function () {
    Route::group('api', function () {
        // 一些其他路由
    });
    // 将app/reports注册为错误报告路由
    Report::route('reports');
});
```

如上代码所示，你可以访问`/app/reports`来查看所有的错误报告，其中的各项报告链接会自动处理。

并且，它返回了ThinkPHP的返回值，你还可以将它跟中间件等其他功能结合在一起。

```
use finntenzor\report\Report;

Route::group('app', function () {
    Route::group('api', function () {
        // 一些其他路由
    });
    // 将app/reports注册为错误报告路由
    Report::route('reports')->middleware('MustAdmin');
});
```

### 取代默认响应格式

[](#取代默认响应格式)

错误报告工具启动后，默认会保存所有的错误报告到项目目录/runtime/reports下，但是仅进行保存而不会将错误返回给用户显示，给用户/前端的将会是一段默认的json，格式如下：

- 项目关闭debug模式时

    ```
    {
      "ret": 500,
      "msg": "Internal Server Error"
    }
    ```
- 项目打开debug模式时

    ```
    {
      "ret": 500,
      "msg": "错误Message"
    }
    ```

如果你需要修改为其他格式，你可以利用ThinkPHP的容器绑定来修改格式：

1. 首先你需要创建一个类实现ResponseBuilder，例如： ``` php &lt;?php namespace app\\index\\common;

```
use finntenzor\report\ResponseBuilder;

class ExceptionResponseBuilder implements ResponseBuilder
{

    /**
    * @param \Exception $e 异常
    * @return mixed 响应
    */
    public function debugResponse($e)
    {
        return $e->getMessage();
    }

    /**
    * @return mixed 响应
    */
    public function deployResponse()
    {
        return '哦吼，页面错误了，请联系管理员哦~';
    }
}
```

```

2. 在你的ThinkPHP项目中找到application/provider.php，在其中将ResponseBuilder接口绑定到你自己的实现上： ``` php &lt;?php // ....

```
// 应用容器绑定定义
return [
    // 将工具的ResponseBuilder接口绑定到自定义的Builder类上
    \finntenzor\report\ResponseBuilder::class => \app\index\common\ExceptionResponseBuilder::class
];

// 或者你也可以使用命令式的绑定：
bind(\finntenzor\report\ResponseBuilder::class, \app\index\common\ExceptionResponseBuilder::class)
```

```

### 添加异常忽略类型

[](#添加异常忽略类型)

ThinkPHP默认忽略了“\\think\\exception\\HttpException”类型的异常，在此工具中，如果需要忽略更多类型的异常，则可以使用如下代码修改：

```
use finntenzor\report\ExceptionHandle;

ExceptionHandle::ignore('\\app\\index\\MyException');
```

这段代码需要放在初始化阶段加载的php文件中，例如/application/common.php

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

###  Release Activity

Cadence

Every ~3 days

Total

3

Last Release

2715d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c89a1f277aeb8297e0a7674e8e1c739e3a09959dba4cf8f26feef53d2e7a68a5?d=identicon)[finntenzor](/maintainers/finntenzor)

---

Top Contributors

[![finntenzor](https://avatars.githubusercontent.com/u/7535112?v=4)](https://github.com/finntenzor "finntenzor (8 commits)")

### Embed Badge

![Health badge](/badges/finntenzor-think-report/health.svg)

```
[![Health](https://phpackages.com/badges/finntenzor-think-report/health.svg)](https://phpackages.com/packages/finntenzor-think-report)
```

###  Alternatives

[yii2mod/yii2-bx-slider

Bx-slider widget based on bx-slider extension {@link http://bxslider.com)

1210.8k](/packages/yii2mod-yii2-bx-slider)

PHPackages © 2026

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