mbcraft/piol

Piol 是一个处理文件和目录的库。

2.1.1 2016-08-08 14:49 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:09:27 UTC


README

Piol (PHP I/O Library) 是一个用于管理文件、目录并在文件和目录上执行常见操作的库,如复制、移动、重命名等。它从 Frozen 框架中提取出来,并进行了修订,以便使此代码更有用。

内容

此包包含

docs/ <-- API 文档

src/ <-- 完全文档化的源代码

test/ <-- 单元测试类和数据

vendor/ <-- 空的,但已准备好用于 composer 包(用于运行单元测试)

README.md <-- 整个包的说明和描述

composer.json <-- composer 配置

composer.phar <-- composer 实例

config_tests.php <-- 命令行测试运行器所需的配置文件

run_tests.sh <-- Linux/Unix 的测试运行器

run_tests.php <-- 网页测试运行器

make_docs.php <-- 代码更改后重新生成文档

安装 & 使用

在您的代码中,只需在需要的位置添加 use 指令,例如。

use Mbcraft/Piol/File;

use Mbcraft/Piol/Dir;

库将使用其默认设置(文件根禁闭为 PIOL_ROOT_PATH)加载,并且一切应该都能正常工作。

该库没有外部依赖项,所有使用的类都位于 Mbcraft\Piol 命名空间内。

如果您在库使用之前使用 'define' 指令在 PHP 中定义 PIOL_ROOT_PATH 作为常量,则可以定义文件根禁闭目录。File 或 Dir 的所有路径都将从这个路径开始(因此它们是相对的)。此常量的定义是此库正常工作的必要条件。如果库在 Laravel 项目中使用,PIOL_ROOT_PATH 将自动设置为源文件根。

运行测试

在 Linux 下,键入

sudo php composer.phar update ./run_tests.sh

第一个命令将下载运行单元测试所需的库(对于库正常工作不是必需的),而第二个命令将实际运行单元测试。

或者,您也可以在网页上运行测试,加载 run_tests.php 网页并将其文件夹设置为虚拟主机的根目录。

所有测试在 Linux 上应该都能正常工作。在 Windows 上,由于缺少对文件权限更改的支持(php chmod 函数将返回其返回值,甚至在操作系统中也存在由于完全不同的权限模型而更改文件权限的问题),因此禁用了权限测试。

功能

  • 带有根禁闭功能(PIOL_ROOT_PATH)的简单文件和目录管理,可以在使用库之前设置,也可以自动设置。常见的文件和目录操作方法,读取和写入文件数据。有用的功能,如重命名、删除、移动文件和目录、目录遍历、权限获取和设置(仅限 Linux)等。
  • 使用 ZipUtils 类创建和提取 Zip 文件(需要 PHP 内部的 zip 库)。
  • ini 和 java xml 格式的属性管理。
  • Csv 工具类,用于读取和写入 csv 数据。
  • StringBuffer 类,用于处理字符流。
  • 安全存储管理:在受保护目录中存储文件。以字符串、属性或 xml 的形式保存数据。
  • 上传处理器:使用 UploadUtils 类轻松处理文件上传,甚至可以轻松处理多个文件上传。
  • 可用于缓存的缓存类可用:请检查FlatDirCache类。
  • 自动Laravel框架集成。

文档

您可以在docs/目录中找到整个API文档,用您喜欢的浏览器打开index.html文件。

信息

当前版本:2.1.1

最新更改

  • 将命名空间重构为"Mbcraft"。
  • 从定义的常量和$_ENV中检查PIOL_ROOT_PATH。
  • Laravel自动集成。
  • 添加JavaXmlPropertiesUtils类。
  • 重构了一些类的包。
  • 在文档中修正了类名。
  • 添加openWriter($erase)参数。
  • 添加CsvUtils类
  • 添加IReader和IWriter接口
  • 添加StringBuffer类

路线图

  • 添加Link类的实现。

致谢

制作

完整的源代码和文档由Marco Bagnaresi编写。一些帮助来自Zeal和StackOverflow。当使用StackOverflow时,代码中会放置引用。

分发

希望您觉得这个库很有用。该库现在是开源的,并使用MIT许可证分发。

-Marco