|
From: justinwatkins <jus...@us...> - 2003-11-19 00:23:03
|
CVS commit by justinwatkins: It's been a few months in the making but some progress is finally here. This is a primarily functional upgrade. I haven't tested every feature, and it's not feature complete. This is definitely an *unstable* version in the CVS. If you still need to use amfphp, continue with your current version. It's been a couple of months and I need some version control power provided by CVS. This update is nearly a complete rewrite of every class. The architecture is more organized and uses series of chainable filters and actions to perform the stream processing and execution of the class files. Debugging has been tremendously improved. amfphp is now tightly coupled with the NetConnection debugger. You can view http header data, amf header data, and amf call and response data reported to the debugger. amfphp also listens to the filter settings for the debugger, so you can disable certain groups of debugging information. There is also a new exception handling system. Exceptions are no longer handled by the built in php system and are routed through an internal exception system which gives greater control over how the exceptions are handled and returned. The result of this is an entire batch of method calls will not fail if a single method fails. Only the method call that failed will recieve the onStatus event. Exceptions are now stacked so if there are multiple problems with the execution of an rpc, you should see most of them. (There are some cases where execution just shouldn't continue, so you still may get additional errors if you fix the first one). Right now UTF8 is gone. From the bug reports, it seems that always encoding/decoding as UTF8 is not the most popular choice, so utf8 is gone by default. I am working on a system to tag every piece of meta data as utf8 so you can define on a fairly granular level which arguments and results should be treated as utf8 for multibyte languages. This will obviously need lots of testing once it's complete. The major todo's I still have are implement and ACL system for allowing and denying IP and host addresses to all gateway services and implement a better way for assigning meta data. My current idea for the meta data is to add a gateway config method similar to setMetaDataPath(dir). This will be a folder that will hold all of the meta data information in XML format. The XML files will need to be named ClassName.xml (the same class name as the actual class). and reside in a folder structure identical to the associated classes class path. The advantage of making it a seperate directory key is you can have that directory out side of the web root and not visible to the world. Of course the old method table implementation will still stick around. Well I hope this actually turns out to be a big improvement for amfphp. I still have a few items on my task list and once that's finished I'll start a formal beta process so we can get this product up to a 1.0 status. Justin A sources/flashservices/exception/Exception.php 1.1 M +6 -5 sources/flashservices/exception/Exceptions.php 1.9 |