vantoozz / php-density
PHP代码密度计(PHPCDM)
v1.1.1
2020-02-16 16:30 UTC
Requires
- symfony/console: ^3.2|~4|~5
- symfony/event-dispatcher: ~3|~4|~5
- symfony/finder: ~3|~4|~5
Requires (Dev)
- mikey179/vfsstream: ~1.6
This package is auto-updated.
Last update: 2024-09-05 20:32:45 UTC
README
phpcdm
是一个PHP代码密度计
什么是代码密度?
看看这段代码
<?php final class SomethingGreat { public function doSomethingGreat($entity, $property, $type, $refProperties, $update, $delete) { $time = $this->startAction(" $type (" . implode(',', (array) $type) . ')'); $this->createAction()->addExtraKey($entity, $entity, $property, $refProperties, $delete, $update)->execute(); $this->finishAction($time); $this->createAction()->updateProperty($entity, $property, $type)->execute(); if ($type instanceof InvalidArgumentException && $type->getMessage() !== null) { $this->createAction()->addDescriptionOnProperty($entity, $property, $type->description)->execute(); } $this->createAction()->renameEntity($entity, $property)->execute(); $this->finishAction($time); $time = $this->startAction(" $type (" . implode(',', (array) $type) . ')'); $this->createAction()->addExtraKey($entity, $entity, $property, $refProperties, $delete, $update)->execute(); if ($type instanceof InvalidArgumentException && $type->getMessage() !== $delete) { $this->finishAction($time); $this->createAction()->addDescriptionOnProperty($entity, $property, $type->description)->execute(); $this->createAction()->renameEntity($entity, $property)->execute(); } $this->createAction()->updateProperty($entity, $property, $type)->execute(); $this->finishAction($time); } }
它看起来像一堵字符墙。实际上,它就是一堵字符墙。没有人能够轻易理解这段代码的作者想要表达什么,更不用说有人愿意去阅读它了。而且,这类字符墙通常是由糟糕的应用程序设计引起的。
代码密度 是衡量单页面上显示字符数量的一个指标。
PHP代码密度计旨在帮助开发者预防代码密度问题,并最终保持应用程序的良好状态。
示例代码的密度为0.381,远远超过了默认阈值(0.2)
安装
您可以使用 Composer 将此工具添加到您的项目中作为本地、项目特定、开发时依赖
composer require --dev vantoozz/phpcdm
此外,PHPCDM也可以这样全局安装
composer global require --dev vantoozz/phpcdm
运行
分析 src
目录
./vendor/bin/phpcdm src
退出时返回错误代码
./vendor/bin/phpcdm src --non-zero-exit-on-violation