Login   Register  
PHP Classes
elePHPant
Icontem

File: index.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  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: 2006-09-21 08:44
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($url0, (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($path0strpos($path'?'));
 
 
//if there is a leading / we want to get rid of it
 
if (substr($path01) == '/'$path substr($path1, (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 && !empty($args[0])) $_REQUEST['mod'] = $args[0];
 if (
$arg_count && !empty($args[1])) $_REQUEST['controller'] = $args[1];
 if (
$arg_count && !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();
?>