Хороший подводный камень затаился в механизме работы ZF с плагинами когда вопрос авторизации разрешается именно с их помощью.
С выходом ZF 1.5.0 фильтры Zend_Filter_Alnum и Zend_Filter_Alpha могут перестать корректно работать, если вы используете в своих проектах utf-8 и включенный модуль mbstring. Ошибка проявляет себя при фильтрации строк в которых содержатся русские (а возможно, что и все не входящие в английский алфавит) символы:
$filter = new Zend_Filter_Alnum(true);
Zend_Debug::dump($filter->filter('это странненько - mbstring enabled'));
//string(19) " mbstring enabled"
$filter = new Zend_Filter_Alnum(true);
Zend_Debug::dump($filter->filter('это странненько - mbstring disabled'));
//string(48) "это странненько mbstring disabled"
Данное поведение очень тесно перекликается с ошибочной фильтрацией умляутов, о которой было заявлено порядка месяца назад.
Хранение деревьев в базе — вопрос если не самый популярный, то частовозникающий.
В свое время на phpclub.ru была опубликована статья с неплохим описанием модели, структурой таблиц и примерами. Также Максимом Матюхиным был приведен класс для работы с этой моделью. После возникшей потребности этот класс был переписан под Zend Framework. При «портировании» я просто заставил код немного по другому звучать и добавил некоторую функциональность из PEAR::DB_NestedSet.
Для работы с любыми классами производными от ZF-классов обычно рядом с директорией Zend, содержащей фреймворк, создается директория Application с аналогичной ZF иерархией — в этом случае Zend_Loader сможет подгрузить их в обычном порядке. Этим и обусловлено название класса — Application_Db_Table_Nestedset.
Код документирован и не является чем-то новым поэтому развернутый мануал по использованию приводить бессмыслено.