Location: PHPKode > projects > tinyPHP > tinyPHP-master/tinyPHP/Classes/Core/Bootstrap.php
<?php namespace tinyPHP\Classes\Core;
/**
 *
 * Bootstrap
 *  
 * PHP 5
 *
 * tinyPHP(tm) : Simple & Lightweight MVC Framework (http://tinyphp.us/)
 * Copyright 2012, 7 Media Web Solutions, LLC (http://www.7mediaws.org/)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright Copyright 2012, 7 Media Web Solutions, LLC (http://www.7mediaws.org/)
 * @link http://tinyphp.us/ tinyPHP(tm) Project
 * @since tinyPHP(tm) v 0.1
 * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
 */

if ( ! defined('BASE_PATH')) exit('No direct script access allowed');

class Bootstrap {

	public function __construct() {

		$url = isset($_GET['url']) ? $_GET['url'] : null;
		$url = rtrim($url, '/');
		$url = filter_var($url, FILTER_SANITIZE_URL);
		$url = explode('/', $url);
		
		if (empty($url[0])) {
			$controller = new \tinyPHP\Classes\Controllers\Index();
			$controller->index();
			return false;
		}

		$file = SYS_PATH . 'Classes' . DS . 'Controllers' . DS . ucfirst($url[0]) . '.php';
		if (file_exists($file)) {
			require $file;
		} else {
			$this->error();
		}
		
		$loadController = "\\tinyPHP\\Classes\\Controllers\\".$url[0];
		$name = $url[0];
		$controller = new $loadController;
		$controller->loadModel($name);
		
		$length = count($url);
        
        // Make sure the method we are calling exists
        if ($length > 1) {
            if (!method_exists($controller, $url[1])) {
                $this->error();
            }
        }
        
        // Determine what to load
        switch ($length) {
            case 5:
                $controller->{$url[1]}($url[2], $url[3], $url[4]);
                break;
            
            case 4:
                $controller->{$url[1]}($url[2], $url[3]);
                break;
            
            case 3:
                $controller->{$url[1]}($url[2]);
                break;
            
            case 2:
                $controller->{$url[1]}();
                break;
            
            default:
                $controller->index();
                break;
        }	
	}
	
	public function error() {
		$controller = new \tinyPHP\Classes\Controllers\Error();
		$controller->index();
		return false;
	}

}
Return current item: tinyPHP