Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A HTTP-friendly framework of controllers for PHP5.
Branch: master
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs Updated link to downloads
examples Translation2 throws strict warnings, so need to exclude those
lib/konstrukt k_HttpResponse not deprecated anymore - Closes issue gh-14
script Made sure that only test files with the proper naming scheme is run
test Characters in wrong place removed.
.travis.yml Added Travis support
LICENSE Renamed namespace from k2 -> k
README.markdown Added Travis CI build status.

README.markdown Build Status


Konstrukt is a minimalistic framework which provides a foundation on which to build rather than a boxed solution to all problems. It focuses on the controller layer, and tries to encourage the developer to deal directly with the HTTP protocol instead of abstracting it away. Konstrukt uses a hierarchical controller pattern, which provides a greater level of flexibility than the popular routed front controller frameworks.

Key Aspects

  • Controllers are resources
  • URI-to-controller-mapping gives your application a logical structure
  • Routing based on logic rather than rules
  • Nested controllers supports composite view rendering

Design Goals

  • Embrace HTTP rather than hide it
  • Enable the programmer, rather than automating
  • Favour aggregation over code-generation or config-files
  • Encourage encapsulation, and deter use of global scope
  • Limit focus to the controller layer

Getting Started

Read the documentation

You can read the documentation on

Installing through PEAR

The easiest way to install Konstrukt, is through PEAR. In a console, type the following:

sudo pear channel-discover
sudo pear install pearhub/konstrukt

Creating a new project

You can create a new project by cloning the starterpack under /examples/:

Download the newest version of konstrukt from: Then copy starterpack_default:

cp -R examples/starterpack_default /var/www/foo

Replace /var/www/foo with the location where you want your app to reside.

Something went wrong with that request. Please try again.