Hi,

there is one big thing, which is really missing in the PHP world: a
sensible designed Jabber[1] class, which includes more than just a
simple client. In other programming languages there are cool and
feature-rich libraries, just think on xmpp4r[2] in Ruby, which is
developed by Stephan Maka, a collegue of mine or the deep integration of
XMPP in the Twisted framework, or XMPPPY and so on. 

The plan to develop a Zend Jabber class has to be done with the fact,
that it would not be possible to bring a complete set of features from
the beginning. So we should start with the maybe most-needed variant, a
Jabber client.


Usecase
^^^^^^^
$client = new Zend_Xmpp_Jabber_Client;
$client->setUsername ("[EMAIL PROTECTED]");
$client->setPassword ("...");
$client->setAuthentificationMethod (Zend_Xmpp_Jabber::TLS);;
$client->connect ();
$client->sendMessage (new Zend_Xmpp_Jabber_Message ("my message", 
Zend_Xmpp_Jabbe_Message::MESSAGE, "my subject" ));


First components
^^^^^^^^^^^^^^^^
* Zend_Xmpp_Node_Abstract
  Core implementation of an XML node (extending DOMElement and DOMAttr)
* Zend_Xmpp_Stream
  Xmpp stream (based on DOMDocument)
* Zend_Xmpp_Jabber
  Core Jabber protocoll
* Zend_Xmpp_Jabber_Client
  Wrapps core protocoll issues to a complete client

  __construct([String jabber_id|Zend_Xmpp_Jabber_Id);
  connect();
  setPort()
  getPort()
  getHost()
  enableTls($useFallback = false)
  disableTls()
  enableSsl($useFallback = false)

* Zend_Xmpp_Jabber_Id
  A container for Jabber Id
  
  __construct([String jabber_id | String username, [String hostname]])
  setHost(String hostname)
  getHost()
  setUsername(String username)
  getUsername()

* Zend_Xmpp_Jabber_Message
  Implementation of a Jabber message

  __construct([ String message, [Constant type, String subject]]);
  setMessage (String message);
  getMessage();
  setType (Zend_Xmpp_Jabber_Message::MESSAGE|Zend_Xmpp_Jabber_Message::CHAT)
  getType();
  setSubject (String subject);
  getSubject ();


Problems:
^^^^^^^^^
PHP does not support threads which would be cool for a Jabber library,
but hey, let's work around.


Further ideas
^^^^^^^^^^^^^
* Zend_Xmpp_Pubsub - the publish/subscribe protocoll
* Zend_Xmpp_Jabber_Muc_Client - Multi user chat client
* Zend_Xmpp_Jabber_Roster - Buddy list implementation
* Zend_Xmpp_Jabber_Iq - Information queries
* Zend_Xmpp_Jabber_Vcard - Vcard implementation
* Zend_Xmpp_Jabber_Dataforms - The form protocoll which is used, when a
Jabber componenent (e.g. transport) sends forms (Maybe somehow based on
Zend_Forms)
* Zend_Xmpp_Jabber_ServiceDiscovery - 
* Zend_Dns_SrvLookup - For DNS service discovery (could be used by
various components)


[1] http://jabber.org
[2] http://home.gna.org/xmpp4r/


Greets, Lars
-- 
      "Kriterium des Wahren ist nicht seine unmittelbare
          Kommunizierbarkeit an jedermann"
         -- Theodor Wiesengrund Adorno, aus: »Negative Dialektik«

name: Lars H. Strojny      web: http://strojny.net 
street: Engelsstraße 23    blog: http://usrportage.de
city: D-51103 Köln         mail/jabber: [EMAIL PROTECTED]
f-print: 1FD5 D8EE D996 8E3E 1417  328A 240F 17EB 0263 AC07

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply via email to