Wrapping Up IntuiSite

Back around … um … March (I think), I mentioned I’d been hard at work on a web application framework, called IntuiSite. Well, as of this week, almost a year and a half of work has resulted in what I’m calling Beta 1 of IntuiSite 2.0. I’m setting the version at 2.0 because I used a version internally that I numbered 1.0 that I didn’t feel was worthy of release … but I’d like to keep the versioning intact for internal projects.

IntuiSite is an MVC framework, and it provides for implementation of the view and controller parts of MVC. The implementation of the model is up to the web app developer … on some projects, I’m using Propel, and on others I’m using custom-rolled frameworks to access data in an eXist XML database.

I’m very, very happy with the capabilities of this framework (I suppose that goes without saying … what developer would announce something he’d been working on and say “I think it’s awful!”?). It’s evolved through the development of some 10+ projects I’ve worked on, so It meets real-world needs, and does a darn good job of it.

One of the coolest things about IntuiSite (at least in my opinion) is the way that it maps URLs to controllers. It’s all configured via XML. Take the following bit of code (modified slightly from an actual project I’m working on):


<route class="Article" method="edit" theme="theme1" 
      style="admin" auth="true">
   <param name="articleID" regex="/\d+|new/"/>
   <require permission="EDIT_ARTICLES"/>
   <input>
      <post key="title"/>
      <post key="author"/>
      <post key="date"/>
      <post key="body"/>
      <post key="live"/>
    </input>
</route>

This maps the url /Article/edit/1 to ArticleController::edit(). The edit() method is passed an associative array of parameters, one of which is ‘articleID’ => 1. This bit of XML also tells the use the ‘admin’ style from the ‘theme1′ theme, and that authorization is required to access this page, as well as the EDIT_ARTICLES permission (though implementation of this is left up to the developer). It also tells IntuiSite that the articleID parameter should either be an integer or the string ‘new’ … and even more complicated input checking is possible via the regex parameter.

And … any input that is passed to the script is defined. You can specify that a bit of input only be accepted from a POST request, a GET request, or either. You can optionally specify a regex parameter there as well, and IntuiSite will validate the input for you. All validated input gets passed to the controller method as well.

That’s just the tip of the iceberg. I’ll write more in the coming weeks, as I get the documentation written. Once I’ve gotten some bare-bones docs, I’ll also put up a tarball for folks to download.

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • StumbleUpon
  • Technorati

0 Responses to “Wrapping Up IntuiSite”


  1. No Comments

Leave a Reply