[development] Giving form_alter an $op and calling it more than
once.
Chris Johnson
chris at tinpixel.com
Tue Apr 18 15:42:31 UTC 2006
Karoly Negyesi wrote:
>>> Back to the point: What if we re-do the lifecycle of a node ins the form
>>> system?
>>> That would mean you have form_alter($op) with:
>>> $op = load (collecting the form, change)
>>> $op = view (theming, changing the behaviour, reordering and so)
>>> $op = insert (data is inserted)
>>> $op = validate (valdation)
Would I be all wet to suggest the following as a thought exercise?
In the name of performance, as well as to enable ordering and repeat
callbacks, a lot more sophistication and work could be done at module enable time.
What if, instead of "call module hook if it exists" calls, we built an ordered
list of callbacks for each hook at module enable time, and did our hook calls
by walking that list (graph)? Enabling a module would add its hooks to lists
stored in a compact, high-performance format in a cache / db table. Callbacks
would walk those lists. Necessary enable logic would allow module to place
itself in a list more than once if needed for re-invoking / roundtrip scenarios.
This might even improve bootstrap performance.
Does such a scheme help? Or have I missed some crucial point? :-/
..chrisxj
More information about the development
mailing list