dechamp/shorty

一些工具,帮助避免一些繁琐的事情,例如本应简单但变得复杂的逻辑。

1.3.8 2018-06-30 16:43 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:44:45 UTC


README

pipeline status coverage report

这个库的目标是提供简单易用的助手,以简化日常重复性任务。

指南

  • 不要创建其他支持库中已有的东西。
  • 遵循K.I.S.S.原则(保持简单),不要创建大的助手。
  • 为了简单起见,将它们作为静态方法

有助于缩短典型的逻辑,例如从深层数组中获取值或返回null。

方法

grabOrNull((array|object) $haystack, (string) $needle)

用于处理数组或对象时获取值,递归检查键,如果未找到键则返回null

  • $haystack - (array|object) 对于数组或对象都将执行相同的操作
  • $needle - (string) 通过使用/分隔键进行递归搜索,例如a/b/c

示例用法

使用

Shorty::grabOrNull($deepArray, "a/b/c/d");

而不是...

isset($deepArray['a']['b']['c']['d']) ? $deepArray['a']['b']['c']['d'] : null;

grabOr((array|object) $haystack, (string) $needle, (mixed) $default)

用于处理数组或对象时获取值,递归检查键,如果未找到键则返回默认值

  • $haystack - (array|object) 对于数组或对象都将执行相同的操作
  • $needle - (string) 通过使用/分隔键进行递归搜索,例如a/b/c
  • $default - (mixed) 默认返回的内容

示例用法

使用

Shorty::grabOr($deepArray, "a/b/c/d", "tacos");

而不是...

isset($deepArray['a']['b']['c']['d']) ? $deepArray['a']['b']['c']['d'] : "tacos";

grabOrThrow((array|object) $haystack, (string) $needle, Exception $exception)

用于处理数组或对象时获取值,递归检查键,如果未找到键则抛出异常

  • $haystack - (array|object) 对于数组或对象都将执行相同的操作
  • $needle - (string) 通过使用/分隔键进行递归搜索,例如a/b/c
  • $exception - 异常实例

示例用法

使用

try {
    $val = Shorty::grabOrThrow($deepArray, "a/b/c/d", new Exception('No tacos'));
} ...

而不是...

try {
    if (! isset($deepArray['a']['b']['c']['d'])) {
        throw new Exception('No Tacos');
    }

    $val = $deepArray['a']['b']['c']['d'];
} ...

guard() 现已弃用,请使用 https://packagist.org.cn/packages/webmozart/assert 代替

测试

您可以使用包含的Dockerfile来运行phpunit。

设置

1 docker build -t shorty . 2 docker run -it -v $PWD:/var/www/html shorty /bin/bash 3 phpunitphpunit --coverage-text