Competing IRC Class - Yapircl - Yet Another PHP IRC Library
| From: | Geir Torstein Kristiansen | Date: | Mon, 16 Dec 2002 18:38:50 +0000 |
| Subject: | Competing IRC Class - Yapircl - Yet Another PHP IRC Library | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-11716@lists.php.net to get a copy of this message | ||
Hi. I am the developer of Yet Another PHP IRC Library. I have been lurking on
the pear IRC channel and the mailinglists for some time now and since the
recent announcement of a competing IRC class I feel the need to come out of
the closet with my project as there might be namespace issues etc:)
Consider this a request for comments. I will be happy to move the development
to the PEAR cvs should you feel the quality is sufficent.
http://projects.gtk.mine.nu/yapircl
http://projects.gtk.mine.nu/archive/yapircl/yapircl-0.5.7.tar.gz
http://home.online.no/~geir37/archive/yapircl/yapircl-0.5.7.tar.gz
(mirror)
Status
It is close to feature complete and should be stable, the longest running
YapirclBot based client I know of has been running for 40 days.
Status win32
There were issues with nonblocking sockets in the socket extension on that
platform the last time I tested, I tried commenting out those calls and it
worked.
<rant>
Plans
What I feel remains is a rewrite to handle multiple connections better by
allowing multiple connections to be made from within the same Yapircl
instance.
I am considering separating out the guts into an irc connection object and dcc
connection object which will be handled inside the main Yapircl object. This
master object will then deal with the select()ing etc. This is not totally
trivial as it might affect the current API because Yapircl is used by
subclassing it and adding callbacks so I would need to find a solution to
this. The timer system would also have to be modified.
I could rewrite it even more to make objects for users, channels and whatever.
However as I see it a lot of "traversing an array of objects" issues are
avoided with the current use of associative arrays with keys I am somewhat
wary of rewritting all of this just to use an object in places there are
might be no appearant advantages to use objects and might complicate the
usage of the library.
This has been a learning experience for me and is probably my largest software
project yet so I'm very open to suggestions.
</rant>
--
Geir Torstein Kristiansen
web: http://projects.gtk.mine.nu