Thanks for the reply and for providing all the context. It yielded an understanding of why you made the architectural decisions, though I still think they were/are poor decisions.
I meandered through the repos you linked and the amount of abstraction and the heaviness of the frameworks you are leveraging to attempt to use a single codebase for multiple platforms still seems bonkers to me.
Here’s why from two different points of view:
1. Developer’s POV
I think at very best the end result on each platform you are supporting will be a massively over-bloated plugin that maybe kinda, sorta works but will likely be very brittle specifically because you are trying to support multiple platforms with one giant codebase and when you make fixes (for example) for WordPress, you are going to end up creating new issues for Magento.
I think you will always be chasing your tail and fighting with the scope of the abstractions and complexity of the dependency-tree in your codebase just to make really simple fixes that would take a couple lines of code and 10 seconds in a native plugin.
Again, I understand why you are trying to consolidate all your integrations into one codebase and I hope it ends up working out for you, but I think it’s unlikely. When I think of how streamlined and simple a WP Cloudflare plugin could be, leveraging the new v.4 CF API, it makes me feel tempted to write it myself ;^).
2. End User’s POV
So I am someone who writes a blog on WordPress and a techy friend of mine told me I should use Cloudflare to speed things up and protect me from DOS’s (whatever that means). So I signed up for Cloudflare and figured out how to set up all that DNS stuff and then I installed the Cloudflare plugin in my WordPress. Now my admin area takes forever to load, at least the first time. Maybe I’m not using it right, but I thought Cloudflare was supposed to speed things up. And the settings page for the Cloudflare plugin also kind of acts weird – at least it doesn’t look and act like all the other plugins I use.
I’m not really sure how to stress how out of proportion it seems to me to force a 1.3 Mb .js filled with code abstractions supporting WP, Magento, cPanel, Plesk, Joomla, Drupal, whateverthehellelse, to download and be parsed by the browser for one obscure plugin that doesn’t really do much more than let me turn on and off CF features (which I could otherwise manage directly on the CF website) from within my WP admin. For crying out load, all it needs are a few buttons that shoot off a php-curl request! It’s a single Class file with a few hundred (at most) lines of code.
And now speaking as a non-metaphorical admin who runs a bunch of WP sites, you are at 3.0.6 and I have tested each release from 3.0 on and I am still running v. 1.3.25 on all my production sites.
You are listing HTTP2 push as a feature but as far as I can read in your changelogs, you disabled it in 3.0.2 and have not yet re-enabled it (though I think there is a workable, though not ideal, fix for the bloated headers problem that you can find here: https://github.com/daveross/http2-server-push/commit/ae95e8149ae131d07a71fa35ec2d0f7e88d7d03f).
You are no longer making use of spam submissions and I can’t tell whether you are still doing anything about re-writing IP addresses for server logs as that has been dropped from the plugin description.
If you subtract out stuff that you could otherwise do on the CF website, can you tell me what the CF WP plugin is actually providing at this point?