Index

<?php
		error_reporting(E_ALL);
		define('INDEX', 	 				 	 'index');									// default nama file
		define('BASE_URL', 	 				 'http://localhost:8080/');	// base URL
		define('APP_DIR', 	 				 'app');										// direktori aplikasi
		define('SYS_DIR', 	 				 'sys');										// direktori core system
		define('ASSET', 	 				   'ast');										// direktori asset
		define('PATH_MODEL', 	 			 APP_DIR.'/Model');					// direktori model aplikasi
		define('PATH_VIEW', 	 			 APP_DIR.'/View');					// direktori view aplikasi
		define('PATH_CONTROLLER', 	 APP_DIR.'/Controller');		// direktori controller aplikasi
		define('DEFAULT_CONTROLLER', 'download');								// default class controller
		define('ERROR_CONTROLLER', 	 'error');								  // default error class controller
		define('DEFAULT_METHOD', 	 	 'index');									// method pertama dijalankan pada controller
		
		database konfigurasi
		define('DB_HOST', 	 				 'localhost');							// nama host db mysql
		define('DB_USER', 	 				 'root');										// nama user db mysql
		define('DB_PWD', 	 				 	 '');										// nama password db mysql
		define('DB_NAME', 	 				 'mp3');									  // nama database db mysql



		
		require(SYS_DIR .'/Model.php');													// class model system
		require(SYS_DIR .'/Controller.php');									  // class controller system
		require(SYS_DIR .'/Registry.php');											// class model system
		require(SYS_DIR .'/Loader.php');												// class loader object system
		    
    $controller = DEFAULT_CONTROLLER; // initial controller default
    $action 		= DEFAULT_METHOD;			// initial method default pada controller
    $indexCtl		= 1;	// index segment controller pada REQ-URI
    $indexAct		= 2;	// index segment method pada REQ-URI
    		
		
		$segments = explode('/', $_SERVER['REQUEST_URI']); // explode URI segment
		if (isset($segments[$indexCtl]) && $segments[$indexCtl] == INDEX . '.php'){ 					// cek index.php main page
		    $segments = explode( '/' ,'/' . implode('/',array_slice($segments,$indexAct)));		// replace index.php    
		  }
		   		
		
		
		if(isset($segments[$indexCtl]) && $segments[$indexCtl] != '') 	$controller  = $segments[$indexCtl]; // mendapatkan segment controller
		if(isset($segments[$indexAct]) && $segments[$indexAct] != '')  	$action 		 = $segments[$indexAct]; // mendapatkan segment method


		
		$path 		= PATH_CONTROLLER . '/' . $controller . '.php';				// lokasi file controller aplikasi
		$registry = new Registry();	// create object registry 
		

		$loader 	= new Loader($registry); // load registry ke loader
		$registry->set('load', $loader);   // set magic call load untuk view dan model
		$registry->set('data', $loader);
		
			

		if(file_exists($path)) // cek file controller di folder controller aplikasi
	        require_once($path);	// load file controller
		else {			     
					// segment kedua adalah method, karena tidak memanggil default controller atau index.php
					// jika controller tidak ditemukan, cek method pada default controller
				  require_once(PATH_CONTROLLER. '/' . DEFAULT_CONTROLLER . '.php'); // load default controller
			    if(!method_exists(DEFAULT_CONTROLLER, $controller)){ // cek method pada default controller					    		
			        
			        
			        //$controller = ERROR_CONTROLLER; // jika method tidak ditemukan, redirect ke error controller
			        //require_once(PATH_CONTROLLER. '/' . $controller . '.php'); // load error controller
			        //$action = INDEX;   // panggil method default di error controller     
			        
			        $action =$controller; 
			        $controller = DEFAULT_CONTROLLER;
			        $obj = new $controller($registry);	// create object controller instance		
							$dynMethod = $action;
							$obj->$dynMethod(array_slice($segments, $indexAct));			        
			        return;
			    }
			    else{
			    	
			    	 $indexAct--; // pointer method segment sebelumnya
			       $action = $controller; // pointer controller ke action karena segment sebelumnya
			       $controller = DEFAULT_CONTROLLER; // set controller ke default
			      }
			       
			  }  
	  
	  
	  // controller ditemukan, cek method
    if(!method_exists($controller, $action)){	
    	
    		// method pada controller tidak ditemukan
        //$controller = ERROR_CONTROLLER;  // redirect ke error controller
        //require_once(PATH_CONTROLLER. '/' . $controller . '.php'); // load error controller
        //$action = INDEX;        // panggil method default di error controller 
			        $action =$controller; 
			        $controller = DEFAULT_CONTROLLER;
			        $obj = new $controller($registry);	// create object controller instance		
							$dynMethod = $action;
							$obj->$dynMethod(array_slice($segments, $indexAct));			        
			        return;
        
    }
  

			$obj = new $controller($registry);	// create object controller instance		
    	die(call_user_func_array(array($obj, $action), array_slice($segments, $indexAct+1))); // panggil method dari object controller dengan parameter segment berikutnya 

		
?>

0 comments:

Post a Comment

 

Copyright 2013 Download Lagu Gratis: Index Template by Casino Critic | Ping!. Powered by Blogger