检查php文件中是否添加了所有返回类型和参数类型(使用IDE Eclipse)



我想有一种方法来检查我们的php脚本在函数/方法中缺少类型。

在下面的类中,第一个方法具有类型化参数和返回类型。第二个不:

<?php 
class MyClass{
function alter_string(string $a_string): string{
return $a_string;
}
function alter_another_string($a_string){
return $a_string;
}
}

是否有办法检查所有的返回类型和参数类型被添加?我使用Eclipse为PHP开发人员作为IDE。但是任何其他的解决方案也会很好。

我可以编写自己的脚本,读取php文件并检查每个function的返回类型。如果函数有参数,脚本会检查类型是否被添加到这些参数中。但我很确定有一些现有的方法可以实现这一点。

您可以使用如下内容:

<?php
function check_types($file_path) {
$file_contents = file_get_contents($file_path);
$tokens = token_get_all($file_contents);
$functions = [];
foreach ($tokens as $token) {
if ($token[0] == T_FUNCTION) {
$function_name = $token[1];
$function_args = [];
for ($i = 3; $i < count($token); $i++) {
if ($token[$i][0] == T_VARIABLE) {
$function_args[] = $token[$i][1];
}
}
$functions[$function_name] = $function_args;
}
}
foreach ($functions as $function_name => $function_args) {
if (!isset($function_args['return'])) {
echo "Missing return type for function $function_namen";
}
foreach ($function_args as $arg_name => $arg_type) {
if ($arg_type == '') {
echo "Missing type for argument $arg_name in function $function_namen";
}
}
}
}
check_types(__FILE__);

在这种情况下你也可以使用PHPStan。

最新更新