falco442/lumen-treeview
Composer 安装命令:
composer require falco442/lumen-treeview
包简介
Something to help manage tree data structures
README 文档
README
This package is intended for generating a tree structure from flat data (array); it makes use of the class Illuminate\Support\Collection, so is intended for Lumen/Laravel projects.
Requirements
- PHP >= 8.0
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- laravel/lumen-framework >= 9.0
Installation
from command line, in the root folder of your Laravel/Lumen project, run the command
composer require falco442/lumen-treeview
Parameters
Static method getTree()
| name | type | default value | description |
|---|---|---|---|
$array |
array | none. required. | this is the array to pass. |
$parentIdField |
string | 'parent_id' |
the name for the parent field with which is constructed the relation |
$idField |
string | 'id' |
the name for the main field of the array, usually the primary key of the table from which data are taken |
$childrenField |
string | 'children' |
the name for the field which to put the children in, in the returned tree |
Static method getNode()
| name | type | default value | description |
|---|---|---|---|
$array |
array | none. required. | this is the array to pass. Is taken by reference |
$id |
string || number | none. required. | The id of the node to take for which construct the tree |
$parentIdField |
string | 'parent_id' |
the name for the parent field with which is constructed the relation |
$idField |
string | 'id' |
the name for the main field of the array, usually the primary key of the table from which data are taken |
$childrenField |
string | 'children' |
the name for the field which to put the children in, in the returned tree |
$node |
array | null | The node instance to pass to the method. optional, and not to be used to construct the tree. Internal use only. |
Usage
Get all trees (root nodes as array of nodes)
You can call the function getTree() to an array of arrays (for example a collection got from Eloquent) like this:
<?php namespace App\Http\Controllers; use App\Models\Post; use falco442\Treeview; use Illuminate\Http\Request; use Illuminate\Http\Response; class PostsController extends Controller { public function tree() { $posts = Post::all()->transform(function ($item) { if ($item->parent_id === 0) { $item->parent_id = null; } return $item; })->toArray(); return \response()->json(Treeview::getTree($posts)); } }
Get single node tree
You can call the static method of the class TreeView to retrieve the tree relative to a node like this, inserting the id as parameter ID:
<?php namespace App\Http\Controllers; use App\Models\Post; use falco442\Treeview; use Illuminate\Http\Request; use Illuminate\Http\Response; class PostsController extends Controller { public function tree() { $posts = Post::all()->transform(function ($item) { if ($item->parent_id === 0) { $item->parent_id = null; } return $item; })->toArray(); return \response()->json(Treeview::getTree($posts, 101)); } }
falco442/lumen-treeview 适用场景与选型建议
falco442/lumen-treeview 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 08 月 13 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「tree」 「laravel」 「treeview」 「multilevel」 「lumen」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 falco442/lumen-treeview 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 falco442/lumen-treeview 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 falco442/lumen-treeview 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
jsTree widget for yii2
Doctrine2 behavior traits - slowhop fork
A fast and dynamic Merkle tree implementation
Data structure collections, helpers and utilities for yii2 ActiveRecord models(trees, sorts and etc.)
Yii2 DynaTree Menu widget uses Dynamic tree view control jquery.dynatree.js
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 23
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2022-08-13