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/

  

--
Horváth Balázs Balazs Horvath
Online szakember, tanácsadó Online specialist, consultant
WEBoor.net Kft. WEBoor.net Ltd.
+36 (20) 971-2904
balazs.horvath@weboor.net

H-1076 Budapest, Garay u. 45. I. em. 110.
Tel: +36 (20) 62-101-62
Fax: +36 (1) 998-0685
Web: http://weboor.net