Every year, we implement the picnic site with new technology which may be a bit too bleeding-edge for normal projects.  Here's what we did for 2003: 

  1. PHP 4.3 has the new, improved DOMXML.  This was essential for our approach.

  2. There is NO embedded PHP in the web pages.   Yes, I know that PHP is a web scripting language, but we're using it for something very new and very cool.

  3. Web pages were created via FrontPage, pretty normal so far.  At execution time, the FrontPage .htm file is read in and parsed into a DOMXML object.  Using XPath and other cool stuff, the fields within the web page are populated at the XML level.  Finally, the DOMXML object is changed back into an HTML string, and sent to the browser. 

  4. We're reusing software that we developed last year which can automatically take web forms and create XML.  This software is used in the step outlined above, where we automagically populate a web page from XML.  At first blush, this seems trivial, but the problem becomes quite complex, when dealing with child elements.  (The trick (obviously) is naming the fields within the HTML form, but there are all sorts of interesting challenges after that.)

  5. DBMS is  MySQL,  XML is stored within BLOBS.  MySQL has never caused a problem, and has always been super fast.  We love it, which is why we have the logo on our home page.

BTW:  All of this technology is used in our new Requirements-O-Matic tool. 

Plan for 2004:

  1. PHP 5 should be out, and the full object model for PHP should be out.

  2. We will create software for PHP objects to encode themselves (automagically) into XML, and the XML will be saved as a BLOB within a relational DBMS.

  3. When you retrieve a registration form from the web, here's what happens:

Here's where to find this way cool (and free) software we used to create this web site: