Chitin is a rails-ish PHP MVC framework developed in-house by Mudbug Media
Switch branches/tags
Nothing to show
Pull request Compare This branch is 1 commit behind gabetax:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Chitin (pronounced "kai-tin") is an MVC framework written in PHP that was developed by the senior programmers at Mudbug Media for use with medium to large scale applications. Chitin is closely modeled after Ruby on Rails, but with the advantage of being very easy to integrate with pre-existing sites or sites with a large amount of static content, as Chitin takes advantage of the same Layout templates that are used with all of Mudbug's static content.
The name "Chitin" comes from the durable, lightweight polymer which makes up the exoskeletons ("frameworks") of all insects and crustaceans, including crawfish.

== Execution path
* Through .htaccess and mod_rewrite, any requests for a path that does not exist (i.e. one that would display a '404') get passed to dispatcher.php
* The dispatcher.php file: 
** includes the init.php file, the routes, and the [[Dispatcher]] object.
** The Dispatcher object fetches a set of 'coordinates', an associative array containing at bare minimum the keys 'controller', 'action'.  If the URL doesn't match any provided rules, an Apache-style 404 error message is generated by the Dispatcher.
** The controller file is attempted to be included and then instantiated.  If no controllers with an appropriate action method exist, an Apache-style 404 error message is generated by the Dispatcher.
*** The controller instantiates [[BaseModel|BaseModels]], passes user input to them, and passes fetched data from the BaseModels to [[BaseView|BaseViews]].  Optionally, the controller can instantiate other controllers ("sub-controllers") to execute common routines.  All output is stored to a $page array.
** Back in dispatcher.php, the $page array gets fetched from the controller and then includes a layout template, which is responsible for displaying the various data inside of the $page array.

== Release Information
What currently appears in this github release is a quick, dirty, export of our trunk, and does not include our currently internally-maintained project documentation and other helpers.  This information will be published in the future if interest is shown.  This project may be re-published in the future to include the previous subversion commit history.

== Dependencies
* PHP 5 (only tested via mod_php, not CGI - please fork if any fixes are required)
* Apache with .htaccess support