wnx/laravel-stats

深入了解您的Laravel项目

v2.13.2 2024-02-28 15:44 UTC

README

Buy us a tree

深入了解您的Laravel或Lumen项目。

Screenshot

安装

通过composer安装是安装此包的最简单方式。

composer require "wnx/laravel-stats" --dev

该包将自动注册自己。

如果您使用Lumen,您必须手动在您的 bootstrap/app.php 文件中注册Service Provider

$app->register(\Wnx\LaravelStats\StatsServiceProvider::class);

可选地,您可以使用以下命令将配置文件发布到您的Laravel应用程序中

php artisan vendor:publish --provider="Wnx\LaravelStats\StatsServiceProvider"

使用

安装后,您可以通过运行以下Artisan命令生成统计数据。

php artisan stats

(请确保在运行上述命令之前运行 php artisan config:clear.)

统计数据也以JSON格式提供。

php artisan stats --json

如果您想要更详细的报告并查看哪些类被分组到哪个组件中,可以使用 --verbose-选项。

php artisan stats --verbose

该详述选项也适用于JSON格式。

php artisan stats --json --verbose

注意 如果您的项目使用 Pest PHP 编写测试,这些文件将自动从统计中排除。由于 "laravel-stats" 的内部工作方式,目前无法检测Pest PHP测试。有关更多信息,请参阅 #194

这个包是如何检测某些Laravel组件的?

该包扫描配置文件中定义的 paths-数组中的文件。然后,它将这些分类器应用于这些类,以确定该类代表哪个Laravel组件。

创建您自己的分类器

如果您希望 laravel-stats 中看到自己的应用程序的组件,您可以创建自己的 "分类器"。通过实现 Classifier-contract 并将其添加到 stats.custom_component_classifier 配置数组中来创建自己的分类器。

例如

// app/Classifiers/RepositoryClassifier.php
<?php

namespace App\Classifiers;

use Wnx\LaravelStats\ReflectionClass;
use Wnx\LaravelStats\Contracts\Classifier;

class RepositoryClassifier implements Classifier
{
    public function name(): string
    {
        return 'Repositories';
    }

    public function satisfies(ReflectionClass $class): bool
    {
        return $class->isSubclassOf(\App\Repositories\BaseRepository::class);
    }

    public function countsTowardsApplicationCode(): bool
    {
        return true;
    }

    public function countsTowardsTests(): bool
    {
        return false;
    }
}
// config/stats.php
<?php
    ...
    'custom_component_classifier' => [
        \App\Classifiers\RepositoryClassifier::class
    ],
    ...

TreeWare

您可以使用此包,但如果它进入您的生产环境,您需要为世界买一棵树。

众所周知,应对气候危机并防止气温上升超过1.5C的最好工具之一是 植树。如果您支持此包并为TreeWare森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。

您可以在 offset.earth/treeware 购买树木

有关TreeWare的更多信息请访问 treeware.earth

运行测试

该包使用phpunit编写了测试。您可以使用以下命令运行它们。

./vendor/bin/phpunit

在本地测试项目中运行命令

如果您在本地工作在包上,并只想在演示项目中运行命令,您可以使用 composer path-repository 格式。将以下片段添加到您的演示项目中的 composer.json

{
    "repositories": [
        {
            "type": "path",
            "url": "/path/to/laravel-stats/",
            "options": {
                "symlink": true
            }
        }
    ],
}

使用 composer require wnx/laravel-stats 安装此包。现在,该包应该在您的演示项目中创建了一个符号链接。

版本控制

我们使用 SemVer 进行版本控制。有关可用版本的信息,请参阅此存储库的标签

致谢

许可证

本项目采用 MIT 许可证 - 详细内容请参阅 LICENSE 文件。