User:Salvatore Ingala/Review 1

(in progress)

Use OOP, Luke!
Static stuff like getGadgetPrefsDescription is simply creepy, why not $gadget->getPrefsDescription? Further points dduced for duplication: the same function uses Gadget::loadStructuredList, then iterates over the array, then does its job. Let's see the callers... bah, ApiGetGadgetPrefs does the same!

Gadgets_body.php

 * This thingie had grown to the point where it could make sense to split it into several files.
 * Profiling: add wfProfileIn/wfProfileOut wherever appropriate.
 * SQL injection via gadget name in getUserPrefs/setUserPrefs
 * Why duplicate stuff from class User here at all?
 * Verify that all existing gadgets will survive wrapping into yet another closure.
 * Once getGadgetPrefsDescription has been turned into a member function, cache its result.

Other
I don't know how stuff works if there are no unit tests. It may work, but sometimes things work accidentally.