andrey-tech / utils-php
一组工具类,包含用于处理文件、目录、JSON格式数据等通用辅助方法。
Requires
- php: >=7.0
- ext-json: *
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 许可证分发。