[Kolab-devel] pear.kolab.org and module thoughts
Jeroen van Meeuwen (Kolab Systems)
vanmeeuwen at kolabsys.com
Tue Jan 18 15:45:29 CET 2011
Gunnar Wrobel wrote:
> Zitat von "Jeroen van Meeuwen (Kolab Systems)" <vanmeeuwen at kolabsys.com>:
> > Hi there,
> >
> > To consolidate some of our conversations on pear.kolab.org, I've created
> > the
> >
> > following wiki page:
> > http://wiki.kolab.org/Pear.kolab.org
> >
> > Naturally, this page is a draft only and feedback from those
> > actually literate
> > in PHP is... well... compulsory.
> >
> > One consideration I would like to make, and thus gain feedback on, is the
> > following;
> >
> > - Supposedly -what do I know-, some of the pear modules are actually
> > Horde specific.
>
> I'm tempted to disagree. It depends on what you define as "Horde
> specific".
I can only emphasize that, I suppose, I'm talking from a more high-level,
bird-view perspective if you will, as opposed to line-by-line, call-by-call
code basis -which is what you are obviously much more familiar with ;-)
So, let me attempt to illustrate what I'm trying to get at, and let's see if
I'm making any sense whatsoever;
If we were to create pear.kolab.org, while pear.horde.org also distributes
Kolab_* (not the same as Horde_Kolab_*), we end up with a mess.
As such, the Kolab_* modules are currently entirely tied into Horde -but not
named as such: Horde_Kolab_*.
If we were to think about resolving this soft namespace conflict of sorts, we
would come up with several options;
- modify defined practices on rpm and/or apt packaging of php pear modules, to
now also include the exact channel name of the module, and make a mess of how
the system pear command works, or,
- offer any (if appropriate/needed/necessary) Horde specific layer on top of a
more generic Kolab_* module available from pear.kolab.org as Horde_Kolab_*
from pear.horde.org.
That said, the second option is *not* to say it is mandatory for Kolab_*
modules (which are to be distributed from pear.kolab.org) to be completely
independent on anything Horde_* as distributed through pear.horde.org. It
would, however, be desirable for the Kolab_* modules to provide a generic API
to the underlying Kolab semantics, such as to avoid application specific
considerations be made in a generic module.
I suppose an example would be to either return one or multiple phone numbers
with a contact; To illustrate the point, while I hope you forgive me my
bastardization of the language and actual module names, the following
hypothetical scenario;
- Some mobile devices only accept one phone number per contact
- A given contact has 3 phone numbers (home, mobile, office)
- Kolab_ZPush knows about the phones capabilities better then
Kolab_Format::Contact() and so Kolab_Format::Contact() just returns all three
phone numbers, and Kolab_ZPush would pop off just one.
A careful consideration would need to be made on whether Kolab_Format gains a
Contact_but_for_ZPush() method (not desirable), or extends its API with a
$how_many call (very nice), and/or whether Kolab_ZPush itself or the
underlying Kolab_Format is to run in circles and attempt to keep track of
which phonenumber exactly is the one that is supposed to be synchronized with
the phone.
I suppose similar considerations are to be made for Authentication and
Authorization, for which Kolab sets (or rather 'maintains') the conditions,
semantics, handling, management, and for which * is a consumer with, possibly,
it's own handling on top of, in addition to or instead of Kolab's.
I hope my statements in this light make a little more sense?
Kind regards,
Jeroen van Meeuwen
--
Senior Engineer, Kolab Systems AG
e: vanmeeuwen at kolabsys.com
t: +316 42 801 403
w: http://www.kolabsys.com
pgp: 9342 BF08
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kolab.org/pipermail/devel/attachments/20110118/3d17ba3e/attachment.html>
More information about the devel
mailing list