mistralys/application-utils

PHP应用程序的即插即用实用工具。

3.0.5 2024-07-30 07:14 UTC

README

Build Status Scrutinizer Code Quality

应用程序实用工具

用于常见任务的静态PHP实用工具类,包括文件系统操作和变量转换,以及图像处理。

要求

  • PHP v7.4+
  • 扩展
    • MBString
    • CURL
    • Json
    • GD
    • Zip
    • Dom
    • SimpleXML

安装

只需使用Composer要求该包

composer require mistralys/application-utils

也可以查看Packagist页面。

翻译支持

要启用包中任何可翻译字符串的本地化,还需要要求应用程序本地化包。包括德语和法语翻译,集成界面允许添加额外的翻译。

不支持其他翻译解决方案。

composer require mistralys/application-localization

注意:StringBuilder辅助器的翻译方法依赖于已安装的包。

快速入门

该包旨在简化日常开发任务,从常见的文件系统访问到数据类型转换。它使用基于异常的错误处理,因此不需要检查PHP函数的返回值是否为false。

没有中央工厂用于访问助手。相反,每个静态助手类都有自己的工厂方法,并作为所有相关任务的中心。

例如,所有文件相关任务都存在于FileHelper类中。

use AppUtils\FileHelper;

// Replacement for file_get_contents
$content = FileHelper::readContents('path/to/file');

同样,转换方法存在于ConvertHelper类中。

use AppUtils\ConvertHelper;

$bool = ConvertHelper::string2bool('yes');

以下助手概述可以给您一个大致的了解。

助手概述

此概述是包中可用实用工具类的摘录。它仅显示主要功能 - 例如,ConvertHelper类有多个静态方法在此处未显示。

  • BaseException:具有扩展功能的异常类。
  • BoolValue:具有单向"粘性"值的面向对象的布尔值。
  • ConvertHelper:转换日期、字符串、转写等。
    • ByteConverter:将字节数值转换为千字节、兆字节等。
    • ControlCharacters:检测和删除字符串中的控制字符。
    • DateInterval:围绕本地DateInterval包装以修复常见陷阱。
    • DurationConverter:将时间持续时间转换为可读格式。
    • EOL:检测字符串或文件中使用的换行符样式。
    • HiddenConverter:将隐藏字符转换为可读的,以供调试。
    • IntervalConverter:将日期间隔转换为可读格式。
    • QueryParser:解析格式为查询的字符串,而不受本地限制。
    • SizeNotation:将大小字符串(2 MB)转换为字节数值。
    • TabsNormalizer:允许智能地左对齐缩进文本。
    • ThrowableInfo:异常分析工具,用于调试并将它们持久化到存储。
    • URLFinder:允许在字符串中检测URL。
    • WordWrapper:智能地将文本包裹到特定长度。
  • ClassHelper:静态分析友好的类加载方法和Composer ClassLoader访问。
  • CSVHelper:读取和生成CSV文件。
  • 高亮器:使用GeSHi进行语法高亮,以及一些自定义变体。
  • JSHelper:从PHP生成JavaScript语句,并自动进行PHP > JS的变量转换。
  • FileHelper:文件系统实用方法与文件查找器。
    • FileFinder:通过过滤器获取文件列表,支持递归或不递归。
    • PHPClassInfo:无需反射从PHP文件中获取基本类信息。
    • MimeTypes:常用MIME类型列表。
    • PathsReducer:将绝对路径列表缩减到公共根目录。
  • HTMLHelper:常用HTML实用方法。
    • HTMLTag:面向对象的HTML标签生成器。
    • AttributeCollection:属性(HTML或其他)的集合类。
  • ImageHelper:使用原生GD函数进行图像操作,支持透明度。
    • RGBAColor:支持透明通道的颜色容器类。
  • IniHelper:INI文件读取器和编辑器。
  • Microtime:支持微秒并具有友好方法接口的DateTime类。
  • NamedClosure:带有添加描述功能的闭包包装器。
  • NumberInfo:带有或没有单位的数字访问和修改。
  • OperationResult:存储任何操作结果的状况的插入类。
  • OutputBuffering:带有异常错误管理的输出缓冲区包装器。
  • PaginationHelper:计算分页组件所需的所有必需数字。
  • RegexHelper:典型的验证正则表达式的集合。
  • Request:验证、过滤和访问请求变量。
    • URLComparer:比较URL,包括查询参数。
    • RequestHelper:从头开始构建原始请求,支持多部分。
    • AcceptHeaders:允许解析Accept:头。
  • StringBuilder:易于连接字符串,具有格式化辅助工具,在链式接口中。
  • SVNHelper:与本地SVN仓库一起工作。更新、提交等。
  • 特性和接口:用于常见任务的插件特性,以及匹配的接口。
    • Classable:用于可以具有类(如HTML元素)的元素。
    • Optionable:用于允许设置选项的元素,具有强类型。
    • Stringable:用于具有__toString()方法的元素。
  • 转写:任何名称的简单ASCII转写。
  • URLInfo:面向对象的parse_url,修复了多个陷阱。
    • 高亮器:使用集成CSS突出显示URL。
    • 规范化器:规范化URL,包括查询参数排序。
  • VariableInfo:关于任何PHP变量类型的信息,包括字符串转换。
  • XMLHelper:简化了与DOM或SimpleXML等XML库一起工作。
    • HTMLLoader:轻松加载HTML片段或整个文档。
    • DOMErrors:使用面向对象接口简化LibXML解析错误。
    • LibXML:所有LibXML验证错误的常量。
    • SimpleXML:SimpleXML的包装器,包含多个实用方法。
    • Converter:将XML/HTML转换为数组和json。
  • ZIPHelper:抽象ZIPArchive类的操作。

文档

辅助类的文档正在《应用工具Wiki》中持续更新。

来源

这些类在许多遗留应用程序中仍在使用。它们的代码最初散布在这些应用程序中,随着时间的推移代码发生了分歧。这个仓库的目的是将它们全部整合成一个单一包,以便更容易维护。

由于遗留应用程序仍在维护中,这个包正在积极维护和现代化。