Qcodo

From Wikipedia, the free encyclopedia

The QCodo Development Framework (http://www.qcodo.com) is an open-source PHP 5 framework which builds an Object Relational Model (ORM), CRUD (Create, Retrieve, Update, Delete) UI pages, and AJAX hooks from an existing data model. It additionally includes a tightly-integrated HTML and Javascript form toolkit which interfaces directly with the generated entities. It is a lightweight framework which can be utilized by small and large Web applications alike.

The framework consists of two main components: the Code Generator and Qforms -- both of which can be used independently of each other. The Code Generator parses an existing Relational Database structure, and builds an ORM, as well as several remote interfaces (SOAP, AJAX) to the ORM. Unlike other existing frameworks, the ORM in QCodo can easily be extended to provide user-maintained functionality (via object subclassing). Qforms is a dot-Net inspired templating engine in which each form element is an object exposing it's functionality and state via methods and attributes. Qforms maintain page as well as form state, and include the ability to validate fields, trigger events, and associate AJAX calls. Qforms bind tightly to the ORM, allowing developers to rapidly and iteratively change any of three layers in the MVC architecture with little impact to the other layers.

The framework is fundamentally different from other PHP frameworks such as CakePHP, the Zend Framework, and Symfony in that the ORM is pre-built and incurs no run-time reflection cost. Another differentiator is the ease with which the ORM can be extended via user-maintained subclasses, enabling a complete data-model rebuild that does not overwrite user-maintained ORM objects -- a common complaint among framework users.

QCodo is mature, actively maintained, and has been deployed in production environements for NASA and other organizations. It's current release is Beta 3.1. The framework was concieved and developed by Mike Ho, and his company QuasIdea acts as the central maintainer, providing new features & releases via the QCodo Website.

Demos and presentations are available at http://qcodo.com/demos/