承接 kittencup/kp-tree 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kittencup/kp-tree

Composer 安装命令:

composer require kittencup/kp-tree

包简介

KpTree是一个基于Zend Framweork 2的模块,实现MYSQL树的几个TableGateway

README 文档

README

KpTree是一个基于Zend Framweork 2模块,实现MYSQL树形的几个TableGateway

2.安装

github下载 或者 composer require "kittencup/kp-tree": "dev-master"

#application.config.php
return [
	'modules' => [
        // ...
        'KpTree',
    ],
];

3.设置

1.嵌套集(NestedTable)

数据库参考KpTree/data/nested

namespace KpTest\Model\TestTable;
use KpTree\Model\NestedTable;
class TestTable extends NestedTable{
    // 设置数据库名
    protected $table = 'nested';
    // 设定左 字段
    protected $lColumn = 'l';
    // 设定右字段
    protected $rColumn = 'r';
    // 设定深度字段
    protected $depthColumn = 'depth';
}

2.路径枚举(PathEnumTable)

数据库参考KpTree/data/pathEnum

namespace KpTest\Model\TestTable;
use KpTree\Model\PathEnumTable;
class TestTable extends PathEnumTable{
    // 数据库名
    protected $table = 'pathEnum';
    // 设定路径字段
    protected $pathColumn = 'path';
    // 设定路径分隔符
    protected $pathDelimiter = '/';
    // 设定深度字段
    protected $depthColumn = 'depth';
}

3.闭包表(ClosureTable)

数据库参考KpTree/data/closure

namespace KpTest\Model\TestTable;
use KpTree\Model\ClosureTable;
class TestTable extends ClosureTable{
    // 数据库表名
    protected $table = 'closure';
    // 存储引用关系的表名
    protected $pathsTable = 'closurePaths';
    // $pathsTable表内 祖先字段名
    protected $ancestorColumn = 'ancestor';
    // $pathsTable表内 后辈字段名
    protected $descendantColumn = 'descendant';
    // $table内 深度字段
    protected $depthColumn = 'depth';
}

4.使用

具体可参考 KpTree\Model\TreeTableInterface

添加一个节点

$table->addNode(['name'=>'kittencup'],4);

移动节点

 $table->moveNode(2, 3)

根据节点id获取父节点

$table->getParentNodeById(12);
$table->getParentNodeById(12,2)
$table->getParentNodeById(12,2,'ASC')
$table->getParentNodeById(12,2,'ASC',['id','name'])

根据节点id获取子节点

$table->getChildNodeById(12);
$table->getChildNodeById(12,2)
$table->getChildNodeById(12,2,'ASC')
$table->getChildNodeById(12,2,'ASC',['id','name'])

根据节点id 删除所有子元素

$table->deleteChildNodeById(1);
$table->deleteChildNodeById(1,false);

根据节点id 删除节点

$table->deleteNodeById(1);

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 17
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 17
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2015-02-10