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
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
