User:Cenarium/tags

Hook

 * ChangeTagsRegister: replaces ListDefinedTags, ChangeTagsListActive and ChangeTagsCanDelete
 * Only one DB hit for extensions (before: one for ListDefinedTags, one for ChangeTagsListActive)
 * Allow to pass additional data for more information at Special:Tags (e.g. name of extension, abuse filters defining the tag)

Classes

 * ChangeTagsContext: regroup data about all tags on the wiki: definitions, hitcounts, deals with additional data pased by ChangeTagsRegister
 * Avoid redundant cache calls in a single request
 * Passed to extensions in ChangeTagsRegister hook, so they don't have to fetch stats on their own (OAuth uses them to define only tags with hits)
 * easier PHPUnit testing
 * ChangeTagsManager: provide methods for managing tags: deletion, (de)activation, creation - wraps ChangeTagsContext
 * ChangeTagsUpdater: provide methods for updating tags - wraps ChangeTagsContext
 * (ChangeTag: removed)

Commits
https://gerrit.wikimedia.org/r/#/c/201905/
 * Split off (non-merged):
 * https://gerrit.wikimedia.org/r/#/c/313201/ (updater)
 * https://gerrit.wikimedia.org/r/#/c/313202/ (manager)
 * https://gerrit.wikimedia.org/r/#/c/313239/ (avoid showTagEditingUI call in logs)
 * https://gerrit.wikimedia.org/r/#/c/313243/ (context for tag description)
 * https://gerrit.wikimedia.org/r/#/c/218020/ (show only tags that can be removed)


 * Extensions:
 * https://gerrit.wikimedia.org/r/#/c/206476/ (AF)
 * https://gerrit.wikimedia.org/r/#/c/253567/ (OAuth)