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)