konstrukt
The Konstrukt Framework is a web framework that I developed. It's written in Perl.
overview
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.
applications/plugins
There already exist several application plugins, which cover some common needs in developing a website:
- A powerful templating system
- Blog
- Wiki
- Calendar
- Guestbook
- 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.
goals
This framework has these main goals:
- Rapid development
- Separation of code, content and layout
- Reuse of code/markup
- Clean code
- Speed
technical details/prerequisites
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.
license
Konstrukt is released under the same license as Perl itself.
installation/download
The package can be installed using the CPAN shell:
# cpan Konstrukt
or
# perl -MCPAN -e shell cpan> install Konstrukt
Alternatively you can find it in the CPAN finden and view/download it there.