Rename *_load and friends
Hi, We have had a discussion about this already under a different subject. My opinion here is that hook_foo is something that gets implemented by N modules and at call time these are called, one after the other. hook_menu , hook_form_alter etc etc Note that 'hook' is always replaced by the module name. Despite hook_load is called a hook, it's a different animal: at call time, only one implementation is called. Not to mention that since we have a node information hook, 'hook' is not necessarily replaced by the module name. Larry Garfield suggested calling these method_load, method_view and so on. This I find a good idea and now would like to get opinions on this name. Thanks ChX Ps. By the way, theme hooks are also not hooks...
Karoly Negyesi wrote:
Hi,
We have had a discussion about this already under a different subject.
My opinion here is that hook_foo is something that gets implemented by N modules and at call time these are called, one after the other. hook_menu , hook_form_alter etc etc Note that 'hook' is always replaced by the module name.
Despite hook_load is called a hook, it's a different animal: at call time, only one implementation is called. Not to mention that since we have a node information hook, 'hook' is not necessarily replaced by the module name.
Note that "hook" is not something that Dries made up in his spare time: http://en.wikipedia.org/wiki/Hooking We should look up the actual definition of "hook" and then apply that to Drupal. No sense in defining our own names just for the fun of it. Cheers, Gerhard
On 1/6/07 1:22 AM, Karoly Negyesi wrote:
Hi,
We have had a discussion about this already under a different subject.
My opinion here is that hook_foo is something that gets implemented by N modules and at call time these are called, one after the other. hook_menu , hook_form_alter etc etc Note that 'hook' is always replaced by the module name.
Despite hook_load is called a hook, it's a different animal: at call time, only one implementation is called. Not to mention that since we have a node information hook, 'hook' is not necessarily replaced by the module name.
Larry Garfield suggested calling these method_load, method_view and so on. This I find a good idea and now would like to get opinions on this name.
I'm not sure I know why they need different names, and I'm not sure where you draw the line. While I absolutely am +1 for keeping hook_load, etc in addition to hook_nodeapi - I don't know that calling some method_* vs. hook_* really brings all that much clarity. We use "hooks" for *lots* of different things - sometimes pass by reference sometimes by value, with all kinds of different expected return values and behaviours. I don't know how much this single distinction helps. Not to mention, I think we can disappear into a dark hole arguing the semantics (i.e. in OO & AO programming, they're all just called "methods" anyway). The nice thing about the 'hook' name (whether invented or otherwise) is it's easy to teach new developers how hooks relate to the code their looking at, and further that when you see module_foo() you can find full documentation on api.drupal.org by searching for hook_foo. I've done several training sessions now and have not run into a whole lot of confusion from the naming. Fact is, they're not really "methods" - reusing a name with a common, different meaning for most developers may well just add confusion. that's my $0.02 anyway. -- James Walker :: http://walkah.net/ :: xmpp:walkah@walkah.net
participants (3)
-
Gerhard Killesreiter -
James Walker -
Karoly Negyesi