On 01/26/2011 03:30 AM, Paul Colby wrote:
First of all, let me just say that I'm really impressed with Qpid!
I've been playing with the C++ broker and client library on and off
for the past couple of weeks, and I've been continually impressed with
just how well it works out of the box.  So thank you all!! :)

Thanks for the positive feedback!

As well as C++, I am quite interested in using Qpid from PHP, and so
I've been experimenting with wrapping the Qpid C++ library using SWIG
(just as the python and ruby bindings currently do).  So after a lot
of playing and SWIG-debug work, I now have a (rough) PHP library that
works :)

Fantastic!

The aim for the messaging API is that it should feel natural to developers experienced in the particular language while retaining appropriate conceptual consistency across languages.

We have a wrapped .NET API for example that also adapts the API to .NET naming conventions etc. Are there any PHP specific adjustments or naming conventions we should adhere to that would make the API more palatable to the general PHP audience? The use of the Variant class in the c++ API seems like an area that would ideally be slicker for scripting languages (note: I know virtually nothing about PHP, I'm afraid!)

Another objective is that the API in any language would allow for an alternate implementation. For example someone at some stage may decide a particular language benefits from a native implementation, or we may find that a C core gives us wider reach than C++ or whatever. We want to ensure that we can evolve the implementation if needed without needlessly breaking the API that applications are using.

Although I still have a fair bit of clean-up to do, it looks like all
that will be required in the end is a custom SWIG *.i interface file
for the PHP library, and a couple of minor "#if[n]def SWIGPHP"
directives in the messaging/Session.h header (to work around some
SWIG::PHP limitations).  And a relevant Makefile.am too I 'spose.

It would be great to get examples of using PHP as well. Matching the set that the other clients have (particularly helloworld, drain and spout) would be ideal.

So, my question is, how would you like me to contribute the PHP work
back to Qpid?  I'm perfectly happy to just attach the final files to a
JIRA issue (would https://issues.apache.org/jira/browse/QPID-2777 be
appropriate? or should I create new JIRA issue specifically for PHP?).

I think a separate JIRA would be best. Another one was created recently for perl (https://issues.apache.org/jira/browse/QPID-3009).

  I'm also just as happy to do an "svn commit" once its ready...
whatever works best for you guys.

Your contribution needs to be granted to the ASF before it can be committed. Assuming you haven't sent in a signed ICLA, you can do this by checking the box when you attach the patch to a JIRA.

Thanks again for using and contributing to Qpid! Great to have you on board,

--Gordon.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscr...@qpid.apache.org

Reply via email to