<?php
 
 
/*
 
 
AzizMVC By Aziz S. Hussain
 
http://www.AzizSaleh.com
 
Licensed under LGPL
 
 
File name: index.php
 
 
Function List:
 
--------------
 
public function checkIndex(params as array): params as array
 
public function loadMVC(): void
 
 
*/
 
 
session_start();
 
 
// Get BASEPATH from script filename
 
$fileName = basename($_SERVER['SCRIPT_FILENAME']);
 
 
// Get base bath
 
define('BASEPATH',str_replace($fileName,'',$_SERVER['SCRIPT_FILENAME']));
 
 
// Include main controller configuration
 
include(BASEPATH.'AzizMVC/configs.php');
 
 
// Main controller
 
define('MAIN_CONTROL',$MVC_Configs['mainController']);
 
 
 
// Loader
 
include(BASEPATH.'AzizMVC/load.php');
 
// Database model
 
include(BASEPATH.'AzizMVC/databaseModel.php');
 
// Main controller
 
include(BASEPATH.'AzizMVC/mainController.php');
 
 
 
// Start MVC with specific controller
 
loadMVC();
 
 
/*
 
This function will loads us the URL paramaters
 
 
public function checkIndex(params as array): params as array
 
*/
 
function checkIndex($params)
 
{    
 
    if(!isset($params) || strtolower($params[0]) == 'index.php' || count($params) <= 0){ return $params;}
 
 
    array_shift($params);
 
 
    if(strtolower($params[0]) == 'index.php')
 
    {
 
        return $params;
 
    } else {
 
        if(count($params) > 0)
 
        {
 
            $params = checkIndex($params);
 
        }
 
    }
 
    return $params;
 
}
 
 
/*
 
This is the main function loader:
 
 
public function loadMVC(): void
 
*/
 
function loadMVC()
 
{    
 
    // See if we are specifying the controller via URL
 
    if(isset($_SERVER['REQUEST_URI'])){
 
        $params = explode('/',$_SERVER['REQUEST_URI']);        
 
        $params = checkIndex($params);    
 
    }
 
    // If not, use the welcome controller
 
    if(isset($params[1])){
 
        /*
 
        Controller names must always be lowercase
 
        Some hosts are case sensitive to filename casing
 
        */
 
        $controller = strtolower($params[1]);
 
    } else {
 
        $controller = MAIN_CONTROL;    
 
    }
 
 
    
 
    // Include the controller
 
    if(!is_file(BASEPATH.'Controller/'.$controller.'.php'))
 
    {
 
        $controller = MAIN_CONTROL;
 
    }
 
 
    require_once(BASEPATH.'Controller/'.$controller.'.php');
 
    
 
    // Check if class exists within controller
 
    if(class_exists($controller))
 
    {
 
        $MVC_CONTROL = new $controller();
 
        // Are we calling any functions
 
        if(isset($params[2]) && method_exists($MVC_CONTROL,$params[2]))
 
        {
 
            call_user_func(array($MVC_CONTROL,$params[2]));
 
        } else {
 
            if(method_exists($MVC_CONTROL,'index'))
 
            {
 
                call_user_func(array($MVC_CONTROL,'index'));
 
            }
 
        }
 
    } else {
 
        die("Controller: $controller does not exist");    
 
    }
 
}
 
 
// End of file /index.php
 
 |