exakat.1.9.8 review

exakat.1.9.8 Review

本周,Exakat升级了库存的介绍。它重构了方法定义检测,并添加了用于隐藏参数和错误情况的新规则。采用了几个现代化,特别是‘不足的类型不足’ rule.

编码本质上有风险,并有助于读取exakat 1.9.7审查。

升级库存

代码库存代表了同一种类的代码语法,聚集在一个地方。通过语法,我们的意思是相同的类型。这可能是if /那么,虽然,虽然,foreach,strings,但也是传入变量,动态代码,正则表达式,mime类型,网址或电子邮件。 

考虑一下正面表达式:他们通常在代码中洒了一下,并且每次代码都建议使用正则表达式时,就会写入一个新的。在一天结束时,存在很多重复使用性丢失。 

通过库存,所有正则表达式都在代码上收集,并在同一位置呈现。这使得易于发现用于从字符串中提取电子邮件寻址的四种不同版本,并选择重要的四种不同版本。 

exakat.收集了几种库存,例如:URL,电子邮件,正则表达式,MIME类型,Pack()格式,日期()格式,PrintF()格式,例外和路径。变量也被呈现‘Confusing variables’部分:在那里,一起呈现类似的变量。虽然它们可能很远的代码,但必须从 $xmlconfig to $configxml将为任何代码审阅者添加额外负担。

库存中的库存可用于大使报告的专用部分,作为一个单独的报告,调用 Inventories.

隐藏参数

隐藏参数是exakat 1.9.8的新规则。它斑点斑点,它存储在局部变量中,并从未使用过。例如,如下:  

<?php

function foo($a) {
    $b = $a;

    return $b + 1;
}

?>

虽然这个例子很短,但它说明了这种情况。从未使用过的参数,导致可读性降低。 

这也是代码移动的情况,或复制/粘贴:原始代码工作,但使用了变量的OThere名称。复制/粘贴到新位置时,最简单的是在旧的位置插入新的参数名称。 

建议简化此类代码,并删除本地变量,或重命名参数。无论如何,值得短的代码审查。

不足的类型不足

typehinting有助于了解方法需要的争论。然而,通过参数过滤,在使用变量的使用情况下没有检查。通过代码衰老,它恰好是Typehint留下来,但其余的代码更改。

<?php

interface i {
    function fooi() ;
}

class x implements i {
    function fooi() {}
    function foox() {}
}

function bar(i $i) {
    // fooi() is enforced thanks to the i interface
    echo $i->fooi();

    // foox() is not checked by the i interface, but belongs to the class x
    echo $i->foox();
}

?>

在此处的示例中,接口用作类型,但使用了一些补充方法,该方法由课程带来。 typehint不足,应更改:通过升级与foox()方法的接口,或通过用x类替换为typehint的i界面。 

当类型的对象用于访问其属性时,也会出现不足的类型。由于界面不’t执行属性,typehint不起作用’t确保以下语法对参数有效。 Exakat现在还报告了这种缺点,并建议使用类(甚至更好,抽象类)作为类型,而不是类型。 

Tymehint太大了吗?

太大了一个类型的类型也被认为是分析规则:我们可以找到最适合当前方法的界面吗?最好的是检查当前可用的接口,并建议较小的接口。这可能肯定是exakat的工作,所以如果你给我们一个ping’像这样实现的那种(开启 推特 or GitHub.)。

错误的情况,任何人?

函数错误

错误的情况是一个代码分析,报告其名称与定义不同的任何应用程序的代码分析。例如, 

<?php

function foo() {}

foo();
FOO(); // Wrong case

?>

此代码是合法的,因为PHP涉及到方法和功能时,PHP是Insenstivite。它赢了’t影响您的代码,无论其使用何种情况。然而,这可能是重要的 编码惯例 :有一个特定的exakat规则集,报告了此类违规行为。

案例错误的方法

案例悬渴也适用于方法。通过exakat 1.9.8,升级该分析以包括静态和正常的方法。 

<?php

class x {
    function foo() {}
}

$y = new x;

$y->foo();
$y->FOO(); // Wrong case

?>

类常量和属性被处理未涵盖此分析,因为它们是案例 - sensitve:代码对,或者获得空!

每周审核:2019,周#41

exakat包括A.‘weekly’报告:此报告采用五项分析为构建。这意味着短暂的审计报告,几乎没有问题审查。读取它们并不是很多,并在代码中查看它们。 PHP社区中的每个人都可以专注于一个经典的编码问题并解决它。谈谈周围的每周审计:你’LL找到面临同样挑战的程序员。

获得‘weekly’审核,运行审计,请求‘Weekly’ report.

# Init the project (skip when it is already done)    
php exakat.phar init -p <yourproject> -R //github.com/Seldaek/monolog.git -git 

# Run the project (skip when it is already done)    
php exakat.phar project -p <yourproject> 

# Export the weekly project (every Monday)    
php exakat.phar report -p <yourproject> -format Weekly 

# Open projects/<yourproject>/weekly/index.html in your browser    

每周,您可以在此找到5个新分析,以便在您的代码中审查。事实上,当您的代码干净时,您也可以快速查看即将到来的分析。 

每周 recommendations for PHP code review : 2019, week 2019-41

快乐的PHP代码评论 

所有385个分析仪都介绍在文档中,包括移动: 避免括号:避免语言构造的括号。

这是一个不寻常的错误,有超过10%的机会出现。 

您可以查看图库中的所有exakat报告: exakat画廊.

下载exakat.io,安装它 Docker.,升级它‘exakat.phar升级-u’ and like us on GitHub..