PHP Classes

File: index.php

Recommend this page to a friend!
  Classes of Michael Collado   Phritz MVC framework   index.php   Download  
File: index.php
Role: Auxiliary script
Content type: text/plain
Description: Bootstrap file
Class: Phritz MVC framework
Browser device independent MVC framework
Author: By
Last change:
Date: 18 years ago
Size: 5,208 bytes
 

Contents

Class file image Download
<?php
/**
 * Bootstrap file
 *
 * This loads all necessary framework classes and instantiates the framework object
 * Parse the request, load the appropriate module/controller/action and run the request
 * Pass response to View object and display
 *
 * LICENSE: This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 * @package Phritz
 * @link http://phritz.fritz-works.com
 * @author Michael Collado <mrfritz379@gmail.com>
 * @copyright 2006
 * @version 0.0.1a
 **/
date_default_timezone_set('America/Chicago');
$startTime = microtime(true);
/**
 * Constant definitions
 */
   
define('PHRITZ_ROOT', realpath(dirname(__FILE__)));
   
$url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
   
//get rid of trailing slash in the root url
   
if (substr($url, (strlen($url) - 1), 1) == '/') $url = substr($url, 0, (strlen($url) - 1));
   
define('PHRITZ_URL', $url);
   
   
//Integer group id for anonymous users
   
define('PHRITZ_GROUP_ANONYMOUS', 3);
   
   
   
//if using request encryption, what is the name of the GET/POST parameter that holds encrypted data
   
define('PHRITZ_SHIELD_KEY', 'phritzvar');
   
   
//Name the default language to be used on the site
   
define('PHRITZ_DEFAULT_LANG', 'EN');
   
   
   
/**
     * Set debug mode for the site-- This sets the error printing, debugging, etc.
     * For development, set this to 1
     * For production, set this to 0.
     */
   
define('PHRITZ_DEBUG_MODE', 1);
/**
 * End Constant definitions
 */
 
/**
 * Parse the path to define module/controller/action request
 */
 //scrap any trailing directory path information in case we are not in the document root
 
$scrap = dirname($_SERVER['PHP_SELF']);
 if (
$scrap !== '/') $path = str_replace($scrap, '', $_SERVER['REQUEST_URI']);
 else
$path = $_SERVER['REQUEST_URI'];
 
 
//get rid of the querystring from the request uri
 
if (strpos($path, '?') !== false) $path = substr($path, 0, strpos($path, '?'));
 
 
//if there is a leading / we want to get rid of it
 
if (substr($path, 0, 1) == '/') $path = substr($path, 1, (strlen($path)-1));
 
 
//split the remaining string by /. The request should be in the format module/controller/action.
 
$args = preg_split("/\//", $path);
 
$arg_count = count($args);
 if (
$arg_count > 0 && !empty($args[0])) $_REQUEST['mod'] = $args[0];
 if (
$arg_count > 1 && !empty($args[1])) $_REQUEST['controller'] = $args[1];
 if (
$arg_count > 2 && !empty($args[2])) $_REQUEST['action'] = $args[2];

/**
 * Begin processing the current request
 * Instantiate required objects: Phritz framework, request, sessionhandler, securityguard,
 * config array, view
 */

require_once 'include/functions.php';
require_once
'kernel/Phritz.class.php';

$Phritz =& Phritz::getInstance();
$PhritzReq =& Phritz::getRequest();
$PhritzConfig =& Phritz::getConfig();
$PhritzView =& Phritz::getView();
$PhritzLang = Phritz::getLang();

/**
 * Set some template parameters
 */
$PhritzView->setParam('PHRITZ_URL', PHRITZ_URL);
$PhritzView->setParam('PHRITZ_ROOT', PHRITZ_ROOT);
$PhritzView->setParam('Request', $PhritzReq->toArray());
$PhritzView->setParam('Lang', $PhritzLang);

if ((
$mod = $PhritzReq->getVar('mod')) == false) {
   
$mod = $PhritzConfig['DefaultModule']; //load default module if none requested
   
$PhritzReq->setVar('mod', $mod);
}
if ((
$method = $PhritzReq->getVar('action')) === false) { //get controller's default action
     
$method = 'index';
     
$PhritzReq->setVar('action', $method);
}

/**
 * Is this a request for a WSDL file?
 */
if ($PhritzReq->getVar('wsdl') !== false) {
   
header('Content-Type: text/xml');
    echo
file_get_contents(PHRITZ_ROOT."/modules/$mod/$mod.wsdl");
    die();
}
/**
 * Load module
 */
Phritz::debug("Requesting service $mod::$ct::$method");
try {
   
Phritz::importModule($mod);

}catch (
PhritzException $e) {
   
Phritz::debug('Module request exception: '.$e->getMessage());
   
error_log($e->getMessage());
   
trigger_error($PhritzLang['server_error'], E_USER_ERROR);
}
if ((
$ct = $PhritzReq->getVar('controller')) === false) { //load default controller if none requested
   
$ct = $PhritzConfig[$mod]['DefaultController'];
   
$PhritzReq->setVar('controller', $ct);
}
/**
 * Execute the requested action, pass the returned response object to the appropriate view *object
 */
require_once PHRITZ_ROOT."/modules/$mod/actions/$ct.php";
$controller = new $ct($PhritzReq, $PhritzView, $PhritzLang);
try {
   
$r = $controller->handle($mod, $method);

} catch (
PhritzDatabaseException $e) {
   
error_log($e->getMessage());
   
Phritz::debug('Database Exception caught: '.$e->getMessage());
   
$r = $e;
} catch (
Exception $e) {
   
error_log($e->getMessage());
   
Phritz::debug('Unknown Exception caught: '. $e->getMessage());
   
$r = $e;
}
$PhritzView->assign('OUTPUT_MESSAGE', $controller->getOutputArray());
$PhritzView->formatResponse($PhritzReq, $r);


/**
 * umm...Display
 */
$PhritzView->display();
?>