深入了解您的 Laravel 或 Lumen 项目。
安装该软件包的最简单方法是使用 Composer。
composer require " wnx/laravel-stats " --dev
该包将自动注册。
如果您使用 Lumen,则必须在bootstrap/app.php
文件中手动注册服务提供商:
$ app -> register ( Wnx LaravelStats StatsServiceProvider::class);
或者,您可以使用以下命令在 Laravel 应用程序中发布配置文件:
php artisan vendor:publish --provider= " WnxLaravelStatsStatsServiceProvider "
安装后,您可以通过运行以下 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。
该包扫描配置文件中paths
数组中定义的文件。然后,它将分类器应用于这些类,以确定该类代表哪个 Laravel 组件。
成分 | 分类 |
---|---|
带电元件 | 必须扩展LivewireComponent |
控制器 | 必须注册到路由并且不扩展LivewireComponent |
模型 | 必须扩展IlluminateDatabaseEloquentModel |
命令 | 必须扩展IlluminateConsoleCommand |
规则 | 必须扩展IlluminateContractsValidationRule |
政策 | 该策略必须在您的AuthServiceProvider 中注册 |
中间件 | 中间件必须在您的 Http-Kernel 中注册 |
事件 | 必须使用IlluminateFoundationEventsDispatchable -Trait |
事件监听器 | 必须在EventServiceProvider 中注册事件 |
邮件 | 必须扩展IlluminateMailMailable |
通知 | 必须扩展IlluminateNotificationsNotification |
新星行动 | 必须扩展LaravelNovaActionsAction |
新星仪表板 | 必须扩展LaravelNovaDashboard |
新星过滤器 | 必须扩展LaravelNovaFiltersFilter |
诺瓦镜头 | 必须扩展LaravelNovaLensesLens |
新星资源 | 必须扩展LaravelNovaResource |
工作 | 必须使用IlluminateFoundationBusDispatchable -Trait |
迁移 | 必须扩展IlluminateDatabaseMigrationsMigration |
要求 | 必须扩展IlluminateFoundationHttpFormRequest |
资源 | 必须扩展IlluminateHttpResourcesJsonJsonResource 或IlluminateHttpResourcesJsonResourceCollection |
播种机 | 必须扩展IlluminateDatabaseSeeder |
服务提供商 | 必须扩展IlluminateSupportServiceProvider |
叶片组件 | 必须扩展IlluminateViewComponent |
定制演员 | 必须实现IlluminateContractsDatabaseEloquentCastsAttributes 或IlluminateContractsDatabaseEloquentCastsInboundAttributes |
数据库工厂 | 必须扩展IlluminateDatabaseEloquentFactory |
黄昏测试 | 必须扩展LaravelDuskTestCase |
浏览器套件测试 | 必须扩展LaravelBrowserKitTestingTestCase |
PHP单元测试 | 必须扩展PHPUnitFrameworkTestCase |
如果您的应用程序有自己的组件,您希望在laravel-stats
中看到,您可以创建自己的“分类器”。通过实现Classifier
合约并将类添加到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
],
...
你可以自由地使用这个包,但如果它进入你的生产环境,你需要为世界购买一棵树。
现在众所周知,应对气候危机和防止气温上升超过 1.5 摄氏度的最佳工具之一是植树造林。如果您支持该计划并为 Treeware 森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。
你可以在这里购买树木 offset.earth/treeware
请访问 treeware.earth 了解有关 Treeware 的更多信息
该包包含用 phpunit 编写的测试。您可以使用以下命令运行它们。
./vendor/bin/phpunit
如果您在本地处理包并且只想在演示项目中运行命令,则可以使用 Composer 路径存储库格式。将以下代码片段添加到演示项目中的composer.json
。
{
"repositories" : [
{
"type" : " path " ,
"url" : " /path/to/laravel-stats/ " ,
"options" : {
"symlink" : true
}
}
],
}
并使用composer require wnx/laravel-stats
“安装”软件包。该包现在应该在您的演示项目中进行符号链接。
我们使用 SemVer 进行版本控制。有关可用版本,请参阅此存储库上的标签。
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅许可证文件。