I wanted an easy way to navigate a PHP file full of object-oriented class definitions in Emacs. My search for such a tool turned up php-mode integration with imenu. Imenu allows modes to generate menus of structural elements in a file, where selecting an element jumps to to its location in the file.
But php-mode separates the list of functions from the list of classes. The list of functions is often way too long, and it's not clearly organized by class.
I wanted imenu to show functions in a class. It already supports hierarchy. So I hacked together an implementation of
imenu-create-index-function that did what I wanted. Here it is: php-imenu.el
It's worked great on the PHP I've thrown at it, but patches are welcome to support other coding styles, etc.