Download the PHP package changhorizon/directory-tree without Composer
On this page you can find all versions of the php package changhorizon/directory-tree. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download changhorizon/directory-tree
More information about changhorizon/directory-tree
Files in changhorizon/directory-tree
Package directory-tree
Short Description Elegantly transform directory structures into traversable tree objects
License MIT
Informations about the package directory-tree
Directory Tree
Elegantly transform directory structures into traversable tree objects
This library provides object-oriented directory structure mapping and transformation capabilities for PHP applications. It converts physical filesystem hierarchies into traversable tree objects with support for multiple export formats including JSON, XML and visual representations.
✨ 特性
- 将实体目录结构映射为记忆中的树形结构
- 支持祖先、父代、子代、兄弟节点的查询
- 提供 Array JSON XML 多种格式输出
- 支持树形文本、缩进文本 HTML/UL 等展示格式
📦 安装
📂 目录结构
🚀 用法示例
示例1:基本目录树渲染
示例2:多种格式输出
📐 接口说明
NodeInterface
定义目录树节点的基本接口
TreeBuilderInterface
定义构建目录树结构的接口
TreeMemoryInterface
定义目录树内存操作的接口
🛠️ 核心类说明
DirectoryNode
Namespace:
ChangHorizon\DirectoryTree\Node
- 实现 NodeInterface
- 代表目录树中的单个节点
- 包含路径、父节点、子节点等信息
- 自动验证路径有效性
DirectoryTreeBuilder
Namespace:
ChangHorizon\DirectoryTree\Builder
- 实现 TreeBuilderInterface
- 使用迭代方式构建目录树
- 自动排序文件和目录
- 支持大目录处理
DirectoryTreeMemory
Namespace:
ChangHorizon\DirectoryTree\Memory
- 实现 TreeMemoryInterface
- 提供树结构查询功能:获取祖先节点,获取兄弟节点,获取后代节点
- 使用BFS算法遍历
DirectoryTreeTransformer
Namespace:
ChangHorizon\DirectoryTree\Transformer
- 目录树结构转换器
- 支持多种输出格式转换: 数组,JSON,XML,HTML列表,Markdown列表,缩进文本,ASCII树状文本
- 保持原始目录结构
- 自动处理特殊字符转义
DirectoryTreeViewer
Namespace:
ChangHorizon\DirectoryTree\Viewer
- 提供简化的渲染接口
- 支持多种输出格式:HTML列表,Markdown列表,文本缩进,树状文本
- 内置异常处理
DirectoryTreeViewer::render(string $path, int $format = self::FORMAT_TEXT_TREE)
$format 可选值
| 常量名 | 值 | 描述 |
|---|---|---|
| DirectoryTreeViewer::FORMAT_TEXT_TREE | 1 | 树状文本格式 |
| DirectoryTreeViewer::FORMAT_TEXT_INDENTED | 2 | 缩进文本格式 |
| DirectoryTreeViewer::FORMAT_MARKDOWN_LIST | 3 | Markdown 列表格式 |
| DirectoryTreeViewer::FORMAT_HTML_LIST | 4 | HTML 列表格式 |
默认值:
DirectoryTreeViewer::FORMAT_TEXT_TREE
🔍 静态分析
使用 PHPStan 工具进行静态分析,确保代码的质量和一致性:
🎯 代码风格
使用 PHP-CS-Fixer 工具检查代码风格:
使用 PHP-CS-Fixer 工具自动修复代码风格问题:
✅ 单元测试
执行 PHPUnit 单元测试:
执行 PHPUnit 单元测试并生成代码覆盖率报告:
🤝 贡献指南
欢迎 Issue 与 PR,建议遵循以下流程:
- Fork 仓库
- 创建新分支进行开发
- 提交 PR 前请确保测试通过、风格一致
- 提交详细描述
📜 License
MIT License. See the LICENSE file for details.