Gestalt is a web-development framework that is based on the MCV framework.

The package contains a few components that make up the framework, as well as a project generator, called Gestalt.

Gestalt is the name of this project as a whole, and also the project generator.

For documentation on the various individual components, please see:

Dispatcher/Controller - Controller
Table/Row - Model
 Template Toolkit - View

The generator ties these components together to enable rapid development of web-based applications by creating the various components which form the MCV framework.

Typically, one should create the database schema, then run 'gestalt' to generate the project, and then customise any of the controls/models/views that it generates.

For each table in the database, a set of perl modules are generated: One for the Controller and two for the Model.

The generated Controller modules dont actually contain much code yet, as they inherit their base functionality (CRUD operations) from the base controller, Apache::Request::Controller.

The two modules generated for the Model represent the Table structure, and an interface to the rows within the table. The Table modules only define the structure of the database table, such as the names/types of columns that make up the table. Any primary/foreign keys or column constraints are also modeled in the table structure. All code to access this data structure is inherited from the base DB::Table module.

The Row modules (like the Controller modules) dont contain much code of their own, but also inherit from the base DB::Table::Row module.

This provides a very low memory foot-print, as the only bits that contain any code of their own are the bits that define the database tables.

The last bits that get generated are the views, which are implemented using templates of the  template-toolkit variety.