Zend PHP 5 编程大赛冠军归 Qiang Xue
|Zend's PHP 5 Coding Contest - the Winners!|
It really wasn't that easy to choose between the top applications; there are quite a few that ended up in the top 20 or so that could just have easily been in the top 6. Without your input, we'd still be arguing over them!
A special mention goes to MyObjects, a project that provides its own persistent object library and tools for generating classes directly from a MySQL database. A minor coding style issue was all that prevented the project from being one of the top prizewinners. The voters liked it too, and it ended up coming in 7th place. Keep an eye out for the author, Erdinc Yilmazel of Turkey - we'd put money on his winning next time, if there's a next time!
Another special mention goes to Hive, which came in 41st because nobody in the public domain voted for it. We disagreed - it ranked 3rd in the judges list - so we've scrambled around to find a judges prize for the author, Robert Janeczek. Ironically, Robert describes Hive as 'a low-level version of the PRADO project'...
Our judges and the public agreed over PRADO, which won outright. All we need to do now is get a laptop to Qiang Xue, the author of the winning application, and then we can sit around in the office drinking too much caffeine and playing hangman with a clear conscience.
Even if your application came nowhere near those dizzy heights, remember that every single contest entry listed on this site is a winner! The authors of the top 50 applications will have t-shirts to remember us by; those whose apps reached 2nd - 6th place will get a fully licensed copy of Zend Studio 3.5 and a year's subscription to php|architect; and everyone whose application was approved will receive geek-friendly coupons worth over $100.
All in all, it was an interesting exercise. A lot of contestants said that they had enjoyed playing with PHP 5 and finding out what they could do with it. From our side of events, we were treated to a bird's eye view of the ways in which PHP 5 is likely to be used and abused; a very helpful thing in many respects, both for the language designers and for the language documentors. A big THANK YOU goes to everyone who joined our judges' panel - I'm sure we'll find you a t-shirt somewhere - and to every single person who submitted an application, whether it made it past the approval stage or not.
Qiang Xue's Project page:
|The PRADO Component Framework - By Qiang Xue||Public vote: 3.94 Judges vote: 5.00 Total: 89.4%|
|Description:||PRADO is an event-driven and component-based framework for Web application development in PHP5. |
Developing a Web application with PRADO mainly involves instantiating prebuilt and application-specific component types, configuring them by setting their properties, and composing them into application tasks. Some repetitive and tedious work, such as form field validation and page state management, can be accomplished easily in this fashion with the provided PRADO components. Using PRADO to develop Web application will bring you familarity of developing desktop GUI application with RAD tools such as Borland Delphi, Visual Basic, etc. You will also find it is like ASP.NET in many aspects.
|Number of team members:||1|
|How long did it take to develop:||2 months|
|Difference from coding in PHP 4:||No more references need to address objects. Class properties can be accessed in a chained name path, instead of using functions. Very easy to use SimpleXML extension for handling XML documents. And many many others!|
|Extensions used:||SimpleXML, zlib|
|Design Patterns used:||Singleton, Factory, Command, Composite, Decorator, Interpretter, Delegate, Template|
|Resources used:||The PRADO idea was first inspired by Apache Tapestry, a similar project in Java. Its design and implementation benefit greatly from commerical products including the Borland Delphi and the ASP.NET.|
|Lines of code (estimate):||7000|
|Comments:||Easy to install, works great, nice documentation [Derick Rethans] |
Comments, lot of them and most of them good! If nothing else, this project is a wonderful example of why comments are needed and how they should be written.
Quite a few methods don't have a "public" specifier, not a big issue since it is not true of all classes. [Ilia Alshanetsky]
Very good code. Could have better error checking/handling, good use of PHP5 new features and functions, XML, very strong on design patterns [David Costa]
[19:21] <helly> damn i just loosed prado's hangman game
[19:21] <otherbird> heh
[19:21] <otherbird> you too? :)
在 XOOPS 下使用WordPress模块，居然出现HTML TAG断裂现象