Finally every class has API-documentation.
For some classes the documentation may refer to the version in SVN, but even in those cases it should be more or less valid for the latest released version.
It is done. The last updates for the PHP4-version have been released.
The classes FTPConnection, MultiSQL, RSS2 and SMTPConnection were the last classes needing to be released in their last incarnation.
As an extra I also updated the Catcher-class to its latest version.
Today I have released three new classes.
Catcher, PayPalButton and SiteMap.
Catcher extends PHP's error- and exception-handling by the possibility to decide if the error-messages should be printed to the screen, logged into a file or mailed to the admin.
It also can include a backtrace to the real source of the problem, as this might sometimes not be obvious from the error-message.
PayPalButton creates buttons that can be used for payments using PayPal's Website Payments Standard.... read more
This month (August 2008) PHP4 has reached its end of life.
The start of the Olympic Games in Beijing also was the end of PHP4.
One day before, on August 7th, a final release has been made, but now there will be no more updates for PHP4, except maybe through Linux-distributors that still support it.
Since now the focus really will swap over to PHP5 (and download-numbers of my classes already have shown such a shift over the last months) I will not continue working on the PHP4-versions of my classes anymore.... read more
Today I have updated the following classes:
The first two have been ported to extend from TCPConnection. These classes also utilize the new read-functions of TCPConnection, which offer more controlled reading from the stream.
The new version of SQLSession is a recode and thus is not compatible with earlier versions. The good news is that the new version now works again on PHP4, and that now $_SESSION can be used, as the class works with the normal sessions, instead of storing the data directly into the object.
As now I have a class for generic TCP-connection I have started to change the existing classes that implement protocols to extend from TCPConnection.
That way in the protocol-classes I do not need to care anymore about how the connection is established and how to send or receive data.
As HTTPConnection 1.3 extends from TCPConnection you need both classes in your project.
If you do not want this you may use HTTPConnection 1.2b as it offers the same functions as version 1.3.
Finally I had some time to generate and upload the documentation of nearly all my classes.
Some classes are still without documentation, but that will be delivered with the next update of those classes (which will be quite soon).
A new class is born.
As by now I have different classes using TCP-connection I have decided to take the bare connection-code and move it to its own class, TCPConnection.
This class now is used for generic TCP-connection, without any specific protocol.
The protocol is then either implemented in the script, or in a class that either uses TCPConnection or extends from it.
I have started porting my *Connection class to extend from this class and thus will soon release updates for those.
Again there are new version of my two eMail-related-classes.
SMTPConnection has received support for CRAM-MD5, and now can auto-detect which authentication-mechanism to use. That results in a change in the constructor, so when you update to the new version you will need to adjust your scripts.
eMail now has support to send the mail itself, through the mail()-function, represented by the method sendmail(), which takes of proper header-extraction before feeding the data to mail().
Today the new version of my two mail-classes have moved from the repository to the public download-area.
The SMTPConnection-update fixes the bug that was posted for nearly two years. It finally can send to multiple recipients and handle cc- and bcc-addresses.
The eMail-update includes a change in the constructor. Scripts using this class will not work without changes when using the new version.
Recipients are now specified via addrecipient().
For a while now I am using a Subversion-repository to keep track of my development here and to offer more frequent updates to you.
I won't be posting about every update I do in the repository, and some of the commits even may break things, but I will try not to commit code that I know it doesn't work.
One of the problems with the SQLSession-class is that it cannot be easily integrated into a project without having to change from using $_SESSION to using the object.
As this provides an unnecessary level of inconvenience I have recoded SQLSession to use session_set_save_handler() so that, as usual, $_SESSION can be used.
As this is a complete rewrite the new version of the class is not compatible with previous releases.
The new version is now being tested and is supposed to be released soon.
Catcher, currently only available in the subversion-repository, is a class to catch errors and exceptions.
I hope it will be flexible and provide all necessary functions, like outputting the error-message, mailing it or writing it into a logfile.
It will still take some testing and there probably also still will be changes, but I think the release will be quite soon.
After releasing the template-class yesterday I already updated it.
The code wasn't exactly nice, using those wrapper-functions, so I removed them.
SQLSession also received an update. Now it also is PHP5-only as it now also utilizes function-overriding to make work with the class a bit easier.
Also I removed a little bug about a missing variable.
Although stated otherwise before I have now decided to discontinue the support for PHP4.
Just now I have released my template-class, the first class that cannot directly be ported back to PHP4 and that made me rethink my position on PHP4.
I think many of you will agree when I say that OOP in PHP4 is a feature, but not a concept.
The concept of OOP started to get more solid in PHP5, with a much wider support for classes.
PHP6 will most probably follow that road and give even better support, but who knows, right?... read more
A new class is born, and this time it's a template-class.
Also this is my first class that cannot be ported to PHP4 easily, because get() and set() are not supported there.
Thus I have decided to not release a PHP4-version of this class, which would be possible, but it would be necessary to use normal methods, which makes things a bit uglier.
I have found PHPDocumentor for myself, thus I have started using it to create documentation for my classes.
This means that soon there will be more and better documentation.
So far the only documented class is HTTPConnection, and that has been written from scratch. But now I am nearly through with my classes and can provide equally good, if not better, documentation with less work.
Two new classes are currently in development.
One, a template-class, is nearly finished and will probably be released soon.
The other one, a class to create forms, has just been started and will still need some time.
Since these classes are not really related to each other they can and most probably will be released independently.
Due to a bug in the POST-method I have updated the HTTPConnection-class and released the new version.
Since it is only a bug-fix I only appended a "b" to the version-number.
The bug broke Cookie-transmission in the POST-method. GET and HEAD worked as intended.
Today I have found a bug in my class HTTPConnection.
It is actually surprising it stayed there for such a long time.
When using the POST-Method to submit data Cookies won't work because the linebreak is not interpreted as linebreak.
This will be fixed very shortly.
As you might have read quite some time ago it was announced that PHP4 will not be further developed in favor of PHP5 and the coming PHP6.
Although I think that this is a good move I also think that it'll still take some time before really everybody migrates to PHP5.
So I made the decision that I'll keep on providing PHP4-versions of my classes at least until PHP6 is released.
At that time I'll think it over again and will let you know how my development will go on.
Yesterday evening I updated SQLSession to 1.1b.
1.1 has never been uploaded due to an error, so I immediately went for 1.1b.
It doesn't change much, just a bit in the constructor. Mostly it's about better handling of session-ids passed to the class.
A new class is born.
With RSS2 you can easily (with just a few lines of code) create RSS2-feeds.
Currently I am working on a class to create RSS2-feeds. It's functional already and I already use it in a project at work but I want to make a few parameters optional before releasing it.
Stay tuned for the release, the class should be ready for public access soon.
Since there might be problems when inserting data that contains characters used for boundaries in SQL-statements I decided to make dialect-conversion optional by adding the optional parameter $convert (defaults to true) to query().
For PHP5 I made convertsql() public so that SQL-statements can be prepared before executing them.
For PHP4 I set $this->dbresource=false in close() so that the class knows it is disconnected.