2017 © Pedro Peláez
 

library kp-tree

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

image

kittencup/kp-tree

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

  • Tuesday, February 10, 2015
  • by h112367
  • Repository
  • 0 Watchers
  • 19 Stars
  • 0 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

1.概述

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

2.安装

github下载 或者 composer require "kittencup/kp-tree": "dev-master", (*2)

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

3.设置

1.嵌套集(NestedTable), (*3)

数据库参考KpTree/data/nested, (*4)

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), (*5)

数据库参考KpTree/data/pathEnum, (*6)

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), (*7)

数据库参考KpTree/data/closure, (*8)

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, (*9)

添加一个节点, (*10)

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

移动节点, (*11)

 $table->moveNode(2, 3)

根据节点id获取父节点, (*12)

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

根据节点id获取子节点, (*13)

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

根据节点id 删除所有子元素, (*14)

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

根据节点id 删除节点, (*15)

$table->deleteNodeById(1);

The Versions

10/02 2015

dev-master

9999999-dev http://www.kittencup.com

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

  Sources   Download

BSD-3-Clause

The Requires

  • php >=5.3.23

 

zf2 mysql zend framework 2 tree kittencup