edmondscommerce/typesafe-functions

围绕返回混合类型的内部函数的类型安全包装器

0.2 2019-06-13 15:53 UTC

README

帮助处理与内部函数相关的样板代码,同时确保您的代码保持工具如 phpstanphpqa 的兼容性

查看替代方案

https://github.com/thecodingmachine/safe

这是一个自动生成的更全面的函数库。

我更喜欢只在这个库中包含我实际使用的函数,因此,大多数上述函数将永远不会被使用,所以我并不愿意将它们全部引入。

替换的函数

文件函数

file_get_contents

默认返回 false|string

替换为 \ts\file_get_contents

字符串函数

strpos

默认返回 false|int

根据使用情况有多种替换方式

\ts\strpos 当已知 haystack 包含 needle 时获取实际的字符串位置

\ts\stringContains 检查 haystack 是否包含 needle

\ts\stringStartsWith 检查 haystack 是否以 needle 开头

stripos

//TODO - 但将类似于上面,但不区分大小写

数组函数

in_array

默认这不是严格的,需要第三个参数为 true。

只需将其替换为 \ts\arrayContains,即可自动处理。

这提高了可读性,同时也防止了各种变异测试逃逸,否则这些逃逸很难捕捉到

查找:(|\\)in_array\((.+?),(.+?),.+?\)

替换:\\ts\\arrayContains($2, $3)

调试函数

print_r

当传递 true 时,这返回一个字符串,例如

<?php
$string=\print_r(['a'=>1], true);

为了使其类型安全,我们将其替换为

<?php
$string = \ts\varToString(['a'=>1]);

反射

ReflectionClass

始终返回单个类型

标准化类型,例如,对空字符串或失败时抛出异常

查找替换