exakat.1.6.5 review
exakat.1.6.5 review

exakat.1.6.5 Review

exakat 1.6.5评论随着很多扩展和一些新分析。特别是,我们为PCOV和Weastref的支持增加了两个有趣的PECL扩展;新的分析报告可作为条件的变量,以及初始化为字符串(DUH!)的阵列;最后,大使报告和几个先前的分析延长,涵盖了比以前更多的情况。到exakat 1.6.5审查,超越!

Weastref和PCOV.

佩戴物都是一个 PECL Extension. A. 目前的RFC.。此扩展名为 乔沃特金斯。弱引用的目标是允许PHP引擎解开这些引用,以防它需要释放内存。这意味着对象在执行期间可能会消失。

这对于缓存策略非常有用:而不是在应用程序的生命周期期间累积缓存,而某些对象被标记为优先级未启动。 薄弱的参考文献 将可用,以及传统的参考。

PCOV. is ‘a self contained CODECOVERAGE. PHP7的兼容驱动程序′。它适用于PHPUnit,并提供有关代码行执行和控制流的急需信息。 PHPUNIT使用它们来建立测试套件的代码覆盖范围。

exakat现在报道了两个延伸。建议防止PCOV达到生产,而Weastref不应该被遗忘。

没有变量是一个条件

此分析斑点变量作为原始条件。这是一个例子:

    
<?php

if ($error) {  
   echo, 'Error : '.$error;
}

?>

In this situation, it is easy to read that the condition on the $error 多变的 is actually a test on its content. When no error was spotted, then $error is probably empty, and thus, the application skips the display. When the error is explicit, then, the variable is filled with a non-false value, and this leads to the display.

在隐藏警告的环境中,可以通过方式测试变量的仅存在。

一般来说,建议使情况明确。在这里,我们可以与空字符串进行显式比较,或者如果变量可能未定义,则对ISSET()的调用。

    
<?php

if (isset($error)) {  
   echo 'Error : '.$error;
}

?>

If $error is always set, then a comparison with an explicit value carries more meaning than a auto-cast comparison to false. For example:

    
<?php

if ($error !== '') {  
   echo 'Error : '.$error;
}

// same as above, with a constants const NO_ERROR = '';
if ($error !== NO_ERROR) {  
   echo 'Error : '.$error;
}

?>

最后一行甚至更好:代码完全可读,常量名称充当可读性和可执行的注释。它甚至可以使用其他值进行更新的附加值,而无需更改代码。

作为一般规则,建议推荐避免变量作为条件,即使它应该只包含布尔值:使比较明确,可维护。

PHP 7.1没有’从字符串到数组t transtype

直到PHP 7.1,可以使用空字符串初始化变量,稍后将其用作数组。 PHP将立即在数组中进行键入值。看到它的行动 3v4l.org. .

    
<?php

$a = '';
$a[3] = 4; var_dump($a);
// PHP 7.0 and older :  
// string(4) "   4"

// PHP 7.1 and more recent /*
array(1) {   
[3]=>
  int(4) 
}
*/

?>

虽然用字符串初始化变量并将其用作阵列并不是很聪明,但这是一个旧的习惯,在许多开发人员中占有很好的旧习惯’代码:初始化变量最通用的方式,忘记它是使用空字符串。这跳过了‘Undefined variable’错误,但尚未提供阵列和字符串。

PHP 7.1已移动以跳过沉默式铸造。特别是,它会发出与字符串索引的非致命错误,(‘非法字符串偏移’)但在数组中设置0。

exakat. 现在报告初始化为字符串的变量,但用作阵列,以便PHP 7.1的兼容性报告中。

每周审计:2019,周#07

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 : 2018, week 2019-06

  • 时间戳差异 : time() and microtime() shouldn’用于计算持续时间。
  • 父母第一 : When calling parent constructor, always put it first in the __constructmethod.
  • 局部变量太多了 :在该方法中发现了太多局部变量。
  • 可以用 谜语 : 采用 谜语 常量访问当前文件’s parent directory.

快乐的PHP代码评论

所有354个分析仪都介绍在文档中,包括智能: 不匹配类型和默认:这是参数typehint和参数的默认值’t match.

这是一种罕见的虫子(3%),但它在出现时绝对挫伤了一些自我。

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

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