davidjeddy / normie
尝试规范PHP标准库的数组和字符串函数参数顺序。
Requires
- php: ^7.4
Requires (Dev)
- bmitch/churn-php: ^1
- dephpend/dephpend: dev-master
- friendsofphp/php-cs-fixer: ^2
- phploc/phploc: ^4
- phpmd/phpmd: ^2
- phpmetrics/phpmetrics: ^2
- phpstan/phpstan: ^0.11
- phpunit/phpunit: ^8
- povils/phpmnd: ^2
- roave/no-floaters: ^1
- roave/no-leaks: 1.1.2
- roave/security-advisories: dev-master
- sebastian/phpcpd: ^4
- squizlabs/php_codesniffer: ^3
- wapmorgan/php-code-fixer: dev-master
This package is auto-updated.
Last update: 2024-09-17 09:41:39 UTC
README
徽章
贡献者
- David J Eddy me@davidjeddy.com
描述
Normie(简称为Normalizer)通过实现norm_{函数名}()包装函数声明,试图使使用PHP标准库(SPL)函数调用更加一致。这个库绝对不会以任何方式覆盖SPL函数。
示例
函数参数顺序示例。
数组函数
Normie数组函数遵循“数组合并源X,操作符Y(回调,键,针等),其他参数为Z”的思想。完整的数组函数列表可以在这里查看。
SPL: array array_map ( callable $callback, array $arr1, array $_ = null) { }
Normie: array norm_array_map( array $array, callable $callback, array $userdata = null): array
字符串函数
Normie字符串函数遵循“搜索X字符串或Y目标,替换为Z字符串”的思想。完整的字符串函数列表可以在这里查看。
SPL: array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )
Normie: array explode ( string $string , string $delimiter [, int $limit = PHP_INT_MAX ] )
安装
通过Composer
php composer.phar require davidjeddy/Normie
库开发设置
# Download repo and runtime environment git clone https://github.com/davidjeddy/normie.git cd ./normie docker pull php:7.4.0-cli docker run -d --rm --name php7_4 -v $(pwd):/normie php:7.4.0-cli tail -f /dev/null # Tools to make composer work a bit easier apt-get update -y apt-get install -y git zip unzip # Run a PHP environment docker exec -it php7_4 bash # Install deps cd /normie php composer.phar self-update php composer.phar install --dev -vvv -o # OR php composer.phar update -vvv -o
测试/质量/报告工具
质量
php-cs-fixer
./vendor/bin/php-cs-fixer fix ./src
phpmnd
./vendor/bin/phpmnd ./src/ --progress
phpstan
./vendor/bin/phpstan analyse ./src --level 7
phploc
./vendor/bin/phploc ./src --count-tests
phpcpd
./vendor/bin/phpcpd ./src
dephpend
./vendor/bin/dephpend metrics ./src
churn
./vendor/bin/churn run src
phpcf
./vendor/bin/phpcf ./src
Roave no leaks
vendor/bin/roave-no-leaks ./tests
报告
phpcs
./vendor/bin/phpcs -p ./src/ --colors --report=source --report-file=./reports/phpcs.txt
phpmd
./vendor/bin/phpmd ./src html codesize,unusedcode,naming --reportfile ./reports/phpmd.html
phpmetrics
./vendor/bin/phpmetrics --report-html=./reports ./src/
测试
phpunit
无xDebug
./vendor/bin/phpunit --bootstrap vendor/autoload.php ./tests
有xDebug
php ./vendor/bin/phpunit ./tests --coverage-clover './reports/clover.xml'
使用方法
使用非常简单!将命名空间声明添加到您的逻辑中,然后您想使用已知函数的规范化版本时,只需在前面添加norm_
即可。现在所有数组和字符串函数的参数都是可预测的顺序!
<?php
namespace Your\Class\Name;
...
use Normie\Array;
use Normie\String;
...
// some code for your application
...
$results = norm_stristr($heystack, $key);
...
xDebug
对于某些报告/QA,需要xDebug。为此,请执行以下操作:
docker run -it --rm --name normie -v "$PWD":/app php:7.4.0-jessie bash
pecl install xdebugphp
echo "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20160303/xdebug.so" >> /usr/local/etc/php/conf.d/xdebug.ini