Skip to content

Front Controller

inghamn edited this page Sep 14, 2012 · 1 revision

Front Controller (index.php)

Apache is configured to send all requests through the Front Controller, index.php.

  • Parse the URL of the request
  • Create an empty Template
  • Check access control
  • Load the Controller
  • call the Action on the Controller, passing in the Template
  • render the Template that comes back

Routing (url parsing)

So far, we're able to get away with very simple routing. We just read urls as /controller/action. We have a little bit of special routing code for Open311, but the default routing code just:

<?php
// Check for default routes
elseif(preg_match('#'.BASE_URI.'(/([a-zA-Z0-9]+))?(/([a-zA-Z0-9]+))?#',
                  $_SERVER['REQUEST_URI'],
                  $matches)) {
	$resource = isset($matches[2]) ? $matches[2] : 'index';
	$action   = isset($matches[4]) ? $matches[4] : 'index';
}

This assumes:

  • URL matches controller and action names
  • There are only two parts to the route parsing

If either of these changes, we'll need to write some more custom route code, or look at adopting some other library for routing. But right now, I'm not seeing anything that we want to do that can't be accomplished with these simple routes.

Developer Guide

Features

Principles

  • Coding Style
  • Accessibility (Section 508)
  • Progressive Enhancement
  • Unobtrusive Javascript
Clone this wiki locally