使用 golang 来翻译 php 函数。可以看做php函数在golang的映射字典。
- 单元测试
- 单测用例需参考 https://github.com/php/php-src/tree/master/ext/standard/tests/strings
- 单测覆盖率:go-carpet 或者 go-carpet --summary 保障单元测试覆盖率
- 单测规范:goland -> general -> test for function 来生成单元测试用例代码
- 单测覆盖率要求:100%
- 圈复杂度
- 在根目录使用命令 gocyclo -over 10 ./ 检查圈复杂度
- 保证所有复杂度不超过 10
- string
- addcslashes()
- addslashes()
- bin2hex()
- chop()
- chr()
- chunk_split()
-
convert_cyr_string() - convert_uudecode()
- convert_uuencode()
- count_chars()
- crc32()
- crypt()
- echo()
- explode()
- fprintf()
- get_html_translation_table()
-
hebrev() - hebrevc()
- hex2bin()
- html_entity_decode()
- htmlentities()
- htmlspecialchars_decode()
- htmlspecialchars()
- implode()
- join()
- lcfirst()
- levenshtein()
- localeconv()
- ltrim()
- md5_file()
- md5()
- metaphone()
- money_format()
- nl_langinfo()
- nl2br()
- number_format()
- ord()
- parse_str()
- print()
- printf()
- quoted_printable_decode()
- quoted_printable_encode()
- quotemeta()
- rtrim()
- setlocale()
- sha1_file()
- sha1()
- similar_text()
- soundex()
- sprintf()
- sscanf()
- str_contains()
- str_ends_with()
- str_getcsv()
- str_ireplace()
- str_pad()
- str_repeat()
- str_replace()
- str_rot13()
- str_shuffle()
- str_split()
- str_starts_with()
- str_word_count()
- strcasecmp()
- strchr()
- strcmp()
- strcoll()
- strcspn()
- strip_tags()
- stripcslashes()
- stripos()
- stripslashes()
- stristr()
- strlen()
- strnatcasecmp()
- strnatcmp()
- strncasecmp()
- strncmp()
- strpbrk()
- strpos()
- strrchr()
- strrev()
- strripos()
- strrpos()
- strspn()
- strstr()
- strtok()
- strtolower()
- strtoupper()
- strtr()
- substr_compare()
- substr_count()
- substr_replace()
- substr()
- trim()
- ucfirst()
- ucwords()
- vfprintf()
- vprintf()
- vsprintf()
- wordwrap()
- array
-
示例命令:
gocyclo -over 10 ./
#查看圈复杂度超过 10 的 function
生成测试用例:goland 在方法名处右键,Generate, Tests for package. 根据生成的代码完善用例 示例命令:(在文件所在的文件夹下):
- 方法一:
go test
- 方法二:
go test --cover
- 方法三:在相应的 _test.go 文件下,用例前面有一个三角形,直接点击运行