Wednesday, May 27, 2009

Ruby on Rails

Recently I've agreed to work on the Crabgrass and SocialGeo projects. With these projects come a few technologies that I'm relatively inexperienced with, including Ruby on Rails and a Java-based map server. I've taken the time to learn Ruby and get acquainted with basic rails functionality. I've also looked around the Crabgrass code in an effort to understand the Rails development process a little better. With this new experience, I'm able to resolve a few roadblocks that I've had in my own framework development. Many of these developments are in the area of TemplatedControls, as Rails has demonstrated a nice development process for passing model data to the views. Some of my time from now on will be dedicated to these other projects, but I hope to keep progress strong on this project as well. Hopefully working with these other technologies will provide some insight into how I can make improvements.

Monday, May 25, 2009

CSS Aggregation, Themeing, Entities

Recently I fixed a few things that have been in the way of really creating functional websites. These included CSS Aggregation (required for dynamic themeing), Theme configuration files, and the ability to use common html entities from waxml files. CSS aggregation was a necessary feature because the aggregator would be responsible for applying the current theme colors and styles to other resources. With this functionality, controls can be designed to inherit information like color, border, and recommended padding size from the theme configuration file. An example of a theme configuration file can be seen here. Another irritating bug was the inability to use HTML entities like   and © within the waxml template files. This was due to the fact that these entities are not defined in the used XML schema. The workaround involved preprocessing the template files to replace common HTML entities with their ASCII counterparts. The XMLFixEntities function can be seen here, starting on line 20. Some reorganization of functions might be in order to separate the template loader from the Page object.

Monday, May 18, 2009

Code Page

So I found out that searching for Wax PHP Framework yields results from a UK based company called One Black Bear. I'll be working on keeping the blog and code page active to try to raise up through the search results. In the meantime, the code page is located at http://code.google.com/p/waxphp.
Just as a side node - I couldn't find any actual information or code for this other framework.

Saturday, May 16, 2009

Wax PHP Framework

So now that the framework is starting to mature a little bit, I finally decided to create an actual blog so I don't have to just keep updating the project page on Google Code. Here's a brief summary of the work so far:
The project started off as WISP PHP Framework, meaning Websites with Integrated Scripts and PHP. The framework was designed to use PHP to generate an XML representation of a website and then use XSLT transforms and other manipulations to create a working website. As the project progressed, the development style changed and the goals of the project evolved. The current system uses XML template files as the base frame for the site, then uses PHP code-behinds to do any extra manipulation or logic. It uses a library of custom controls to piece together the application. If I had to relate it to any other language, it would be ASP.net.
Current features include:
  • XML based layout system
  • Custom control development
  • Custom control invokation via XML tags (ie: <CustomControl Attribute="Value">)
  • DOM based page rendering
Features temporarily broken during the rewrite include:
  • Integration with PHP PDO (PHP Data Objects)
  • Data sources and data binding
High-Priority features include:
  • Templated controls (Controls that can use XML as a base template, right now they must be all PHP)
  • Integration with SDO (Service Data Objects)
  • Script binding
  • Remote method invokation (calling PHP functions from JavaScript for use in AJAX apps)
Development will progress throughout the summer and will continue during the fall semester.
Anyone interested in helping with development or testing the framework can E-Mail me at joechrz@gmail.com or visit the Google Code page at: http://code.google.com/p/waxphp