Daniel Kinzler wrote:
Brion Vibber wrote I really, really don't like that. An improved extension system should simply have autodiscovery of dropped-in directories and a simpler way to enable things.
I agree in principle, but don't see a way to do this without changing all existing extensions and/or causing some inconvenience when upgrading an existing install to the new system. Here some points that should be considered:
I don't understand what you mean by this. Existing extensions if not changed will continue to work the same way. Extensions which add the metadata file for automatic detection will be automatically detected.
- we'd need a way to know which file in the extension's dir should be
included on every page request. This could be done by a naming convention, as with skins - but that would mean changing many extensions.
Well, so what? You'd need to change every extension to support your installer, too! If you have to do it anyway, what's different?
- there would have to be a separate directory for "auto-load"
extensions,
No there wouldn't.
or a file listing the extensions to load.
Naturally. Oddly enough, your installer requires the same.
The ability to add something there would be just as dangerous as patching LocalSettings.
Why is that so? The site operator still would have to enable any extension. How is automatically pulling a list dangerous in this way?
- Extensions may use configuration variables. Would they go into
LocalSettings, or into separate files? The former would require patching again (or worse, manually inserting them), the latter seems hard to maintain.
What patching? When you *choose to set* configuration values, then you edit. That hasn't changed.
- Some extensions may need to "patch" the database on install. That
would be hard to do with a "drop in" scheme. While this issue isn't addressed by my installer either, it could easily be added there.
Why so? The updater scripts should have a simple hook for this. If it's not already there, add it. (I've recommended that Evan add this for his OpenID extension.)
Right now, it's pretty hard for people to even *get* an extension, since they are only available from SVN (correct me if I'm wrong there).
They're available from whereever they're available from. Some are available in our SVN. Some are available from the web sites of the authors. Some are custom-written and kept locally.
An extension can come from *anywhere*.
Even if we had bundles somewhere, I think it's much easer to say "php installExtension.php Foo" than to manually download, extract, and hook up an extension.
I disagree completely. That is literally *IMPOSSIBLE* for those with no command-line access, whereas dropping in a directory by FTP is insanely easy.
Literally zero setup. What's easier? Nothing.
-- brion vibber (brion @ pobox.com)