Great idea!
Ziba Scott, 09.03.03 23:39:
Hi Roundcube Plugin API Devs,
I wanted to float a concept out there for feedback: Core plugins. Hopefully I haven't missed a discussion about it elsewhere.
A core plugin would be a plugin which is required for roundcube to function or must at least be replaced by a non-core plugin which serves the same function. This is something Drupal has implemented with (in my opinion) great success.
I believe there would be several benefits to implementing some core, required elements of roundcube using the plugin api:
- The plugin api is assured to become potent and robust as it's heavily
depended on
- There almost no learning gap between developing/maintaining a plugin
and a core feature.
- This would eliminate the need for code which reads: "check for a plugin to do this, otherwise do it the regular way"
- The non-plugin code base becomes smaller and more focused
I'm not proposing there be a concerted effort to re-factor everything as plugins but making some core plugins could open doors.
In a test branch we plugin-ized a few core things and liked what we saw:
IMAP Caching: We replaced all the imap caching calls with plugin hook calls. Then it was easy to implement memcache caching instead of sql caching.
Temporary File Handling: We replaced all the read/write attachments to disk calls with plugin calls and wrote two plugins: Filesystem, to handle attachments just as before and Database to handle attachments in a multi-server friendly way. Memcache would be another option.
Contacts: We added a few hooks, re-factored rcube_contacts.php and rcube_ldap.php into plugins, and then made a horde contacts plugin.
What do you all think?
Thanks, Ziba _______________________________________________ List info: http://lists.roundcube.net/dev/