The Konstrukt Framework is a web framework that I developed. It's written in Perl.
This framework aims (beside other goals) for the separation of presentation, logic and content.
The presentation is basically accomplished with a very powerful templating system, which allows fine grained modularization of the presentation components (templates can be nested as deep as you want) and has an easy to use interface, that any non-programmer will understand.
The logic is encapsulated in plugins, which can be integrated seamlessly into the websites using a simple tag-interface. You can develop your own plugins easily and also use the existing plugins for your own ones through the perl-interface of the existing plugins. The Konstrukt core will do all the nasty donkeywork for you, so you can concentrate on the logic of your application.
The content for each application-plugin is stored in a database using perl DBI. The data backends for each plugin are implemented as a separate plugin, which can be exchanged easily, so the applications can adapt to various data stores. Static content (layout, static web pages, ...) will be stored in modular templates.
Your web pages will only describe what they contain, not how they are generated. They will be as simple as:
<!-- use a template for the page layout, set the page title to "blog" and use the blog plugin as the content --> <& template src="/pages/templates/layout.template" title="blog" &> <$ content $> <& blog / &> <$ / $> <& / &>
For more information about the Konstrukt Framework and its design goals take a look at Konstrukt::Doc::About.
An overview of the supplied documentation can be found in Konstrukt::Doc.
There already exist several application plugins, which cover some common needs in developing a website:
- A powerful templating system
- Embedded Perl
- and much more...
You may build rich web sites in an instant and have full control over the look and feel through the template system.
You may also nest (and thus combine) the tags/plugins into each other, which makes it a very powerful but still easy to use system.
This framework has these main goals:
- Rapid development
- Separation of code, content and layout
- Reuse of code/markup
- Clean code
The framework is based on Perl, mod_perl, Apache, MySQL and some other Perl modules. There is a CGI handler as well although it's not maintained to the same extent as the mod_perl handler. It works on Windows and Linux and can be adapted to databases different than MySQL.
Konstrukt is released under the same license as Perl itself.
The package can be installed using the CPAN shell:
# cpan Konstrukt
# perl -MCPAN -e shell cpan> install Konstrukt
Alternatively you can find it in the CPAN finden and view/download it there.