CakePHP-ClosureBehavior

An efficient alternative to CakePHP Tree Behavior

  • Owner: ProLoser/CakePHP-ClosureBehavior
  • Platform:
  • License::
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

CakePHP Closure Behavior

An efficient alternative to the CakePHP Tree Behavior

Background

I was working on a project, where I listed multiple posts on the homepage and wanted to show the categories they fell under as breadcrumbs. Normally the tree behavior works just fine, but if I have 40 posts, I now do 1 query for the list of posts and 40 queries to get a list of all ancestor categories for the post. This didn't seem like a good idea, so I started to look for ways around this. generateTreeList and an iterator function seemed more viable, cutting my query down to 2, but the function itself would prove to be complex and slow.

After searching for feedback on irc.freenode.net/php someone pointed me to an interesting slideshow where I learned about the 'Closure' pattern (page 68). It seems to be a much more efficient alternative to MPTT. So this is my attempt to implement it.

An interesting example implementation: http://codepad.org/pR5r68V0

Installation

With Git

git submodule add git@github.com:ProLoser/CakePHP-ClosureBehavior.git Plugin/Closure

Without Git

Download package and extract to Plugin/Closure

Main metrics

Overview
Name With OwnerProLoser/CakePHP-ClosureBehavior
Primary LanguagePHP
Program languagePHP (Language Count: 1)
Platform
License:
所有者活动
Created At2012-01-09 06:47:05
Pushed At2012-02-05 09:58:49
Last Commit At2012-02-05 01:58:43
Release Count0
用户参与
Stargazers Count14
Watchers Count2
Fork Count0
Commits Count3
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private