andrey-tech/utils-php

一组工具类,包含用于处理文件、目录、JSON格式数据等通用辅助方法。

1.0.0 2020-07-30 10:51 UTC

This package is auto-updated.

Last update: 2024-08-29 05:37:03 UTC


README

一组工具类,包含用于处理文件、目录、JSON格式数据等通用辅助方法。

内容

要求

  • PHP >= 7.0.
  • 实现PSR-4标准的任意自动加载器类。

安装

通过composer安装

$ composer require andrey-tech/utils-php

或者

"andrey-tech/utils-php"

在composer.json文件的require部分添加。

工具类 FileUtils

工具类 \App\Utils\FileUtils 包含用于处理文件和目录的通用辅助方法。
在出错时,将抛出包含 \App\AppException 类对象的异常。

  • getAbsoluteFileName(string $relativeFileName, bool $createDir = true) :?string
    返回绝对文件名。

    • $relativeFileName - 要在包含路径中搜索的相对文件名;
    • $createDir - 递归地创建必要的目录。

    方法在包含路径中根据传递的相对文件名中的目录名搜索文件(即文件和目录可能不存在)。
    根据第一个包含路径递归地创建必要的目录。
    返回绝对文件名或 null,如果文件目录不存在且 $createDir = false

    示例

    • 包含路径 (include_path): .:/php/includes:/php/phar;
    • 相对文件名: $relativeFileName = 'protected/temp/debug.log';
    • 递归地创建必要的目录: $createDir = true.

    方法 getAbsoluteFileName() 将根据每个包含路径搜索目录 protected/temp/。如果目录 protected/temp/ 在任何一个路径中找不到,则方法将根据第一个包含路径递归地创建目录 protected/temp/ 并返回该目录中的绝对文件名 - ./protected/temp/debug.log
    如果目录 protected/temp/ 在某个路径中找到,则方法将立即返回该目录中的绝对文件名。

use \App\Utils\FileUtils;

class Example
{
    use FileUtils;

    public function __construct()
    {
        echo get_include_path() . PHP_EOL;
        $relativeFileName = 'protected/temp/debug.log';
        $absFileName = $this->getAbsoluteFileName($relativeFileName, $createDir = true);
        echo $absFileName . PHP_EOL;
    }
}

$e = new Example();

工具类 JsonUtils

工具类 \App\Utils\JsonUtils 包含将数据转换为JSON格式和反向转换的通用辅助方法。在出错时,将抛出包含 \App\AppException 类对象的异常。

  • toJson(mixed $data, array|int $encodeOptions = []) :string 将数据编码为JSON字符串。

    • $data - 要转换的数据;
    • $encodeOptions - 以数组或位掩码形式提供的额外编码选项。
  • fromJson(string $json, bool $assoc = true, array|int $decodeOptions = []) 解码JSON字符串。

    • $json - 要解码的JSON字符串;
    • $assoc - 将返回的对象转换为关联数组;
    • $decodeOptions - 以数组或位掩码形式提供的额外解码选项。
use \App\Utils\JsonUtils;

class Example
{
    use JsonUtils;

    public function __construct()
    {
        $data = [
            'array' => [ 0 => 0, 1 => 1, 2 => 2, 3 => 3 ],
            'object' => [ 'a' => '1', 'b' => 2, 'c' => 3 ],
        ];

        $json1 = $this->toJson($data, $encodeOptions = JSON_PRETTY_PRINT|JSON_PARTIAL_OUTPUT_ON_ERROR);
        echo $json1. PHP_EOL;

        $json2= $this->toJson($data, $encodeOptions = [ JSON_PRETTY_PRINT, JSON_FORCE_OBJECT ]);
        echo $json2. PHP_EOL;

        $data1 = $this->fromJson($json1);
        print_r($data1);

        $data2 = $this->fromJson($json2, $assoc = false);
        print_r($data2);
    }
}

$e = new Example();

工具类 Utils

工具类 \App\Utils\Utils 包含其他通用辅助方法。
在出错时,将抛出包含 \App\AppException 类对象的异常。

  • isNumericArray(mixed $variable) :bool 检查变量的值是否为非关联(数字)数组。
    • $variable - 要检查的变量。
use \App\Utils\Utils;

class Example
{
    use Utils;

    public function __construct()
    {
        $data1 = [ 0 => 0, 1 => 1, 2 => 2, 3 => 3 ];
        var_dump($this->isNumericArray($data1));

        $data2 = [ 'a' => '1', 'b' => 2, 'c' => 3 ];
        var_dump($this->isNumericArray($data2));
    }
}

$e = new Example();

作者

© 2020 andrey-tech

许可证

本代码根据 MIT 许可证分发。