[development] Splitting hook_menu into hook_menu and hook_router

Earl Miles merlin at logrus.com
Wed Jan 17 06:21:28 UTC 2007

Karoly Negyesi wrote:
> Hi,
> We discussed renaming hook_menu and hook_router was a popular choice 
> but  as Gerhard says "I don't like to rename funtions just for the sake 
> of  renaming them" so it remained hook_menu .
> However, looking at my brain dump at http://drupal4hu.com/node/28 tells 
> me  that further down the road a split is needed.
> hook_router has these things:
> -- path as primary key. We use this as an array key, so an alter hook 
> can  easily be provided.
> -- access callback and arguments
> -- page callback and arguments
> -- map callback and arguments
> hook_menu has these:
> -- path. This is not unique. It's often requested that one path could 
> have  more than one visible link.
> -- parent. If you omit this, it can be autogenerated but for setting it 
> to  some arbitrary value, let's say MENU_ROOT can be used to indicate a 
> new  menu. With this (or via other means if someone has a better idea) 
> we can  put links into any menu.
> -- title.
> -- weight.
> -- expanded.
> With path being unique in one and not unique in the other, I fail to 
> see  how the two could be unified. And I fail to see the point as well. 
> We  could lose path being an array key and make it a property again in  
> hook_router as it was in old hook_menu but then what shall happen if  
> someone defines two router items to the same path? This is a mess. The  
> above is nice and clean.

+1 to all this.

BTW: I still prefer hook_dispatch -- but that's because I've seen that term a 
lot in code I've worked with. Maybe it's just my history. =)

More information about the development mailing list