The Hardhat Framework is divided into several discrete pieces. First, there is the framework itself, which can be shared by multiple applications running on different virtual hosts, or in different subdomains.
Secondly, there is the application, which can be shared amongst different configurations
And finally, there is the database which is specified in the configuration, so it can be shared or discrete at your discretion
The framework consists of a group of classes organized into a Model View Controller structure. It should reside above the document root and can be shared amongst multiple applications or configurations.
The application consists of the application classes grouped into a Model View Controller structure. Additionally, there is a module level that allows plugins to be used to add functionality to the application. This area is also best located above the document root.
The configuration area (frequently contained within the application) consists of the config.ini file with various settings, the commands.xml file, which maps urls to action classes, and the compiled Smarty templates (if you are using Smarty). This areas is also best located above the document root.
The database is optional, although any serious web application will definately have a database. The framework is currently set up to use MySQL only. Everything is isolated in a database layer however, so other databases will be added in the future.