[wp-hackers] Widget Coding Standard
wordpress at santosj.name
Fri Jan 25 04:10:08 GMT 2008
Is there some reason why widget coders place the widget display code in
the widget initialize function? I was contemplating that and came to the
conclusion that someone, Person A, decided it would be cool to place
functions inside of functions like a closure, because they could. I
believe that Person B, while trying to learn how to write widgets
decided that the idea was cool and probably that was how it worked and
copied the idea.
As many widgets (I've seen three, but those are pretty good odds that
enough people are infected with this idea, but not enough to get the
full picture of how many coders actually do this), as I've seen, I think
the idea is great, but should be shun in practice.
At some point, PHP might (unlikely, but granted there are patches that
allow this, so it might be a matter of time), at some point implement
true closure support and woohoo, the widgets will magically stop working
on that PHP version.
The way it works now, is that PHP sees the function declaration and
pulls the function to the global space and compiles it. If the patches
are applied, then the function will be created anonymously to the widget
init function and gain the variable scope of the parent function. This
is probably not so bad, in and of itself, because most widget init
functions don't do much, except register the widget display function.
The question I have is, why are so many widget developers using this
method? PHP allows it and will continue to allow it, but the widget
display functions are not closures and should not be developed in such a
way that they are. The only thing it prevents is the compilation of the
function until the init function is called. I do not believe there is
any difference between compiling it when the file is pulled in by PHP
and during runtime when PHP sees that the function needs to be compiled.
The function will still exist around the same time.
Does anyone have any rebuttal or authority to tell these people to stop?
I know you can't prevent them, but I plan to write about it and right
now I'll very much sound like an ass. I don't wish to, because I already
sound like one in this email.
http://www.santosj.name - blog
http://funcdoc.wordpress.com - WordPress Documentation Blog/Guide Licensed under GPLv2
Also known as darkdragon and santosj on WP trac.
More information about the wp-hackers