Could introduce a CreateWikiCDB class which has shared code logic for implementing CDB across multiple code cases. Allowing us to have a base CDB set up for what cw_wikis, permissions, namespaces and any other modular code we want in the future.
Working on this now, and the potential for this is immense.
It's allowing me to refractor a lot of my code to be more efficient, allows us to increase the efficiency of things like RemoteWiki and other helper functions we use.
Also it allows me to make CreateWiki work more out of the box.
This is definitely now a goal task for me.
https://git.io/fpmju is the code for this on a basic level.
Need to do;
- utilise it!
- remove permissions caching from MW after CreateWiki uses it's CDB version
- move all.dblist processing to per wiki CDB
- introduce a script that allows us to keep foreachwikiindblist functionality
- then kill *.dblist after everything works.
The above is a requirement for ManageWikiNamespaces, it wasn't a requirement for ManageWikiPermissions though for a third party view now, it is. The old DBListGenerator method should remain supported - though potentially should look at killing MW support for it. Which makes this a requirement to use ManageWiki. Thoughts on the last part form anyone?
After testing, the implementation I've done is increasing page loads and isn't working with several extensions that are being super picky about the order things are loaded in. Therefore, this isn't going to happen and I'm going to instead focus on working on other tasks.