edmondscommerce / typesafe-functions
围绕返回混合类型的内部函数的类型安全包装器
0.2
2019-06-13 15:53 UTC
Requires
- php: ^7.2
- ext-curl: *
- ext-json: *
Requires (Dev)
- edmondscommerce/phpqa: ^2.0
- mockery/mockery: ^1.2
- phpstan/phpstan-mockery: ^0.11.0
This package is auto-updated.
Last update: 2024-09-24 17:47:42 UTC
README
帮助处理与内部函数相关的样板代码,同时确保您的代码保持工具如 phpstan 和 phpqa 的兼容性
查看替代方案
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
始终返回单个类型
标准化类型,例如,对空字符串或失败时抛出异常