exakat.2.1.5 reviewexakat.2.1.5 Review

exakat.2.1.5带来了大量的宝藏:PHP 8.0支持,其中名为Parameters,属性,匹配,并为太多链式对象添加了一个新的库存。该发动机升级了输入类型和默认值的存储,这导致了几种现代化和覆盖范围,例如‘typehint用于接口或抽象类’, and ‘从未使用金沙上线’.

代码就像一系列婴儿步骤,也是一个好的exakat 1.9.7评论。

PHP 8.0支持高级

PHP 8.0功能冻结 准备这一天(2020年8月4日),可用大量新的PHP功能:他们确实影响了代码,或者我们使用它的方式。尤其是 :

所有这些升级到PHP语法都对exakat引擎产生了影响,它在内部数据库中构建了代码的表示。

Some are quite simple, like the Nullsafe operator, a.k.a. ?->, which is an option to the classic ->, or match which is an expression-like version of switch. Most of the time, they are used in the same way in an Exakat rule, and will work as usual.

其他,如命名金沙上线或属性,正在更改exakat导航在代码中的方式。特别是,由于名称,而不是一个位置,所以命名的金沙上线现在必须找到它们的定义。虽然,位置仍然很重要,但由于命名金沙上线可以与位置金沙上线混合。而且,当然,仍有变形例。

exakat.is getting ready for PHP 8.0

截至今天,Exakat与PHP 8.0开发兼容。这意味着,它能够审核在PHP的源存储库中提供的所有.phpt文件,尽管有任何实际的PHP 8.0解析。

它还扩展了其分析的范围,以包括新语法,以便以前的规则也利用这些新的运营商。到目前为止,单位测试正在通过,因此我们已经保护了向后兼容性。我们现在正在审查和添加来自这些新功能的使用中出现的新代码情况:这意味着更多单元测试。

It will also mean the creation of new analysis : for example, the nullsafe operator will prevent code with null values to fail, like $x?->y. Instead, the whole expression will be cancelled, and replaced by null itself. While this will save some expressions from failing, it might also push the errors further in the code, and lead to problems on the next lines. Exakat will provide new analysis for these new situations, as we detected them and add them to the reference. Send us your suggestion if you see some opportunities for new bugs to hunt.

准备你的名字金沙上线

命名金沙上线是PHP 8.0的近期功能之一。它将被添加到当前位置金沙上线,从他们的位置派生他们的名字。

<?php
function power($a, $b) { return $a ** $b;}

// positional arguments : 2 ^ 3 = 8 
echo power(2, 3);

// positional arguments : 3 ^ 2 = 9 
echo power(3, 2);

// named arguments : 2 ^ 3 = 8 
echo power(a:2, b:3);

// positional arguments : 2 ^ 3 = 8 
echo power(b:3, a:2);

// mixed arguments : 2 ^ 3 = 8 
echo power(2, b:3);
?>

The name of the parameter appears before the value or the expression itself, with a separating colon :. They allow for the arguments to be put at any position in the argument list, since they will be linked to their actual position at call time. This is very useful when the argument list is long, and some of the options may be skipped.

你’re in the API Now

使用位置金沙上线,金沙上线的名称并未’t leak outside : you may call it $aor $bor worse, and still have a valid method. With named arguments, this is not the case anymore.

每当呼叫者使用命名金沙上线时,它必须使用金沙上线的实际名称,或者PHP将发出致命错误:

Fatal error: Uncaught Error: Unknown named parameter $b

这意味着金沙上线现在很重要,就像类名或方法名称一样。他们现在携带一个语义意义,他们没有’T直到PHP 8.0。

像往常一样,当一些内部是一个很长时间隐藏的时候,突然暴露,会有一些惊喜。那些金沙上线并不总是非常语义,也不是更好的格式化。

金沙上线名称库存

我们不仅在PHP 8.0(2020年12月)之前有一段时间,但卓越在工作中已经很难。在里面 大使 报告,您可以找到金沙上线名片清单。

这是应用程序中使用的所有金沙上线的列表,用于方法,功能,闭包和箭头函数。在这里,您可以看到开源应用程序的结果:

There is the name of the parameter, and the number of times it is used as a parameter in a function or method : $name is used in 41 different methods, which makes it a very common parameter.

本地变量列表示相同的名称也可用作本地变量名:即,当它不是金沙上线时。使用某些名称作为金沙上线可能是一个很好的惯例,以及其他人的本地值。

<?php

// $arg is an argument

function foo($arg) {

// $var is a local variable

$var = $arg + 1;

return $var;

}

// here, $arg is only used as a local variable

function bar() {

$arg = rand(0,10);

return $arg;

}

?>

The next two columns will also show you the various typehints used with those parameters. It is interesting to see that the $handle, which may to refer to a file handle, is sometimes initialized with false and other times with null. They may not represent the same kind of data.

金沙上线为重构

如果最常用的金沙上线名称是非常不明的,则库存的底部显示了不同的世界。

在那里,我们可以看到,有几个公约在工作,有或没有大写,有或没有下划线。名字也是非常通用的,但也更精确:部分,anim,premium,图像,按钮,插件 …

金沙上线计数统计信息

就在金沙上线名称库存上方,您’ll找到金沙上线计数统计:在相同的应用程序中,有0到7个金沙上线的方法,最常用的方法有1个金沙上线。这是同一报告。

 

每周审计:2019年,周#40

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 : 2020, week 2020-34

快乐的PHP代码评论

所有395分析仪都介绍在文档中,包括贵族: 大型尝试块):避免使用太大的尝试块。保持它小,并专注于可能提出异常的实际呼叫。

这是一个新的规则,感谢@afilina的灵感。

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

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