yep, the documentation has to be done, unfortunately i've no time at the moment... a documentation is written once, but read oft-times...
a short introduction can I give you now:
$zimbraction=new zimbraaction(); (also not named in convention, as i see now...

) is the controller for the actions, coded in the GET-cmd string. In his constructor, it makes an instance of ZimbraSoap API $this->z=new zimbraSoapApi().
The controller has this main functions:
$zimbraction->dofixedarglength($cmd, $cmdarray);
$zimbraction->dovararglength($cmd, $cmdarray);
for admin controlls (admin get logged in), segmented for defined params, and dynamical params (afterward i see, it's not well structured! there is much to rework!)
$zimbraction->douserfixargs($cmd, $cmdarray);
for actions, which the user must do (e.g. search folder or something). the user get preAuth.
$zimbraction->getnewmails($cmd, $cmdarray);$zimbraction->cal($cmd, $cmdarray); $zimbraction->newmsg($cmd, $cmdarray);
=> user functions, which aren't ready now, but working fine. they must be adjust and extend for useful working.
zimbraSoapApi:
divided into 3 main parts: admin, user and upload actions. The user/admin get automatically logged on; it uses the cached auth-tokens and times. If they are out of time or incorrect, they get renewed. The pear XML-serializer makes an array out of the xml response.
Upload is developed with curl. An image with web-url get uploaded into a local directory.
hope, you could help me to make it much more usable!
regards
gunthor