Re: Announce-RFC Structures::NestedSet
| From: | Greg Beaver | Date: | Sat, 01 Mar 2003 07:04:33 +0000 |
| Subject: | Re: Announce-RFC Structures::NestedSet | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-14050@lists.php.net to get a copy of this message | ||
Hi Daniel,
Could you post URL link to the source, .phps format if possible.
Greg
--
phpDocumentor
http://www.phpdoc.org
"Daniel Khan" <dk@webcluster.at> wrote in message
news:DIEGIJEABDDLMLKJFCKJGECECFAA.dk@webcluster.at...
> Hello list,
>
> some time ago I wrote a class which handles nested sets using the database
> abstraction
> of phplib.
> About 2 months ago I came across Structures::Tree and saw that some
> interesting features of it's nested
> sets part aren't ready yet. I went trough the Tree code trying to find a
way
> to implement the missing features
> with methods of my class. Finally I decided that it would be much easier
to
> simply port my allready working
> class to pear while doing a major code cleanup. I got in touch with
Wolfram
> Kriesing and he told me that it wouldn't
> be a problem to have packages in pear which solve equal problems and that
he
> wouldn't
> shoot me if I announce it to the list ;)
>
> I have ported the class, abstracted it totally from the framework it is
used
> for in my company and did pretty commenting.
> Now the package is basically ready and working - only 2 extended features
> are left on my todo list.
> So the time has come to ask you if this package would go into pear because
> in that case I have to write
> a little documentation, some exaples, etc.
>
> Features of NestedSets:
>
> - creating/deleting/changing/moving/copying nodes
> - Fetching meta information such as children, parents, sisters, the level
> etc.
> - Very simple table locking mechanism (Transactions would be nicer...)
>
> For performance reasons each rootnode (level 1) whith it's children is
> handled as independent tree.
> The level of a node is stored into the database at creation time so there
> haven't to be expensive self joins
> to query this type of metadata.
> Each node has it's position (order) within the level it belongs to stored
> inside the database, so moving a node
> or subtree inside the same level is very cheap.
>
> TODO:
>
> IMPORTANT:
> - Finish callbacks to do extended operations on node manipulations
> (e.g. if used inside a cms delete all images belonging to that node)
>
> NICE TO HAVE:
> - Optionally integrate PEAR Cache
> (it should be possible to pass the cache object to be used for tree
queries)
>
> Overall status:
> BETA
> There has to be done some testing because of the code cleanup and pear
> porting.
> The phplib-based class is in production use.
>
> Maintenance:
> NestedSet is a core class of a framework I use in my company. So bugfixes
> and ongoing
> development is asured (3 developers working with it).
>
> O.K. that's it
>
> Comments apreciated
>
> --
> Daniel [datenPUNK] Khan
>