Newest stable release: version 2.1.1, released on Dec 1, 2012. See the ChangeLog for what's new in this release.
Older releases are available from the downloads archive.
QCubed (pronounced 'Q' - cubed) is a PHP5 Model-View-Controller framework. The goal of the framework is to save the time for developers around mundane, repeatable tasks - allowing them to concentrate on things that are useful AND fun.
How many times have you written that SQL query, and then parsed out the results? How about that time when you had to create a form with validation logic? How about a situation where you had to move your database back-end from MySQL to PostgreSQL or another database?
All of these situations, and many more, can be simplified with QCubed. There are two key elements to the framework: the Code Generator, and the event-driven, stateful user interface framework (QForms).
The Code Generator creates PHP classes based on your database schema. It uses the concept of ORM, object-relational mapping, to map your DB tables to PHP classes, to allow you to manipulate objects, instead of constantly issuing SQL queries. One-to-many relationship? No problem. Association tables? No problem. Ease of transitioning between RDBMS systems? That's the whole point. Object-oriented querying? We got it.
QForms provide a framework for a true model-view-controller infrastructure in your application. Using standard HTML, create a layout of your page (view). Insert a few controls into that HTML to make it a template that will display the form data. Define those controls and their logic in a PHP class that derives from QForm (controller). Use the code-generated ORM classes to read and write from the database (model).
Customize and extend any component of the system: override properties of a QForm; create your own custom control; use a combination of controls to define a reusable QPanel that can be used as a building block across multiple pages. Abstract out the complex database logic into customizable ORM classes.
Interested? Check out QCubed video screencasts or text-based QCubed tutorials.
845 QDialog rendering events problems when modified
861 AJAX is too async in qcubed
813 Immediate patch for release 2.1
816 QDialog re-parenting causes problems for stacked dialogs
818 HTMLPurifier supported XSS protection not working on 2.1
835 Utilizing comments on table columns (in database definitions) for meta control {Create()} methods
838 QDbBackedSessionHandler functionality was broken in 2.1 release, fixed again.
839 codegen template overrides not working
840 Incorrect draft filenames
850 FormStates Garbage Collection made public
853 QAutocomplete remote JSON DataSource Problem after unsuccessful validation
870 Applying CheckRemoteAdmin for the start page
821 fix command line codegen
823 QDraggable not recording results correctly
824 Wrapper-less controls: change in QControl.class.php got lost in 2.1
825 QDraggable Handle error
826 QDialog not receiving events
827 Error when using QDialog with no properties
828 QDateTime returns with TimeNull = true when passed a date in IsoCompressed (20120402082830)
832 QResizable not accurate in its dimensions, and also should update object width and height
842 problem in collabsable QAccordion with no active panels
844 handle IP ranges in remote admin check
846 Over-optimization in codegen for cache key creation
847 "QDatepicker does not supports ""-1d"" or ""+1m"" syntax for minDate/maxDate"
849 QDataGrid top (header) row height fixed
851 Upgrading HTMLPurifier from 4.3.0 to 4.4.0
855 The codegen fails to handle tables with only one id column
856 New methods in codegened classes to extract info about the class itself.
857 Config Checker failing when includes directory is out of the web directory
858 Generate PHPDoc Comments on QPanel variables
859 QControl.class.php and QcontrolBase.class.php is problematic...
871 PHPDocs added
811 Autoloading Custom files, making use of the existing directories
814 Defining the External Libraries directory in configuration.inc.php
817 QDbBackedFormStateHandler additional comments for MySQL
830 Adding Licensing info for HTMLPurifier Library
833 QDraggable cannot take jQuery selector as Handle
837 Delete QAutocompleteListItem and move support to QListItem
854 Updating Simple HTML Parser in the jquery_ui_gen directory
863 Blank Attributes in QLabels
864 Improvement for QFolder class
868 QDbBackedSessionHandler can't use database where qc_session is first table in database
819 Missing PHPDOC comment on method QApplication::QueryString