Skip to content

P4BGroup/phalcon-nested-sets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d01850e · Jan 14, 2020

History

15 Commits
Jan 14, 2020
Nov 24, 2019
Nov 24, 2019
Nov 24, 2019
Nov 24, 2019
Nov 24, 2019

Repository files navigation

Nested Set Behaviour

Phalcon implementation for tree / hierarchy through nested sets implementation. It will calculate edges and depth for a category on creation, update and delete.

Moving "branches" is not supported (o sub-node with all it's sub-nodes) and won't be. This tool is meant to "react" to changes on a single record and keep the rest of the tree position in place.

prerequisites

Your DB must have parent, left, right, depth columns. Example:

CREATE TABLE `categories` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`name` CHAR(50) NULL DEFAULT NULL,
	`parent_id` INT(11) NULL DEFAULT NULL,
	`_left` INT(11) NULL DEFAULT NULL,
	`_right` INT(11) NULL DEFAULT NULL,
	`_depth` INT(11) NULL DEFAULT NULL,
	PRIMARY KEY (`id`)
);

usage

class MyModel extends \Phalcon\Mvc\Model {
    public function initialize() {
        $this->addBehaviour(new \P4BGroup\NestedSets\Behaviour());
    }
}

references

usage

this behaviour will automatically calculate the edges and depth of each node on save / delete

Similar implementations on other frameworks