BitaG
11/13/2018 - 6:27 PM

core MVC

<?php
class View
{
	function generate($view, $data = null, $title=null)
	{
	  include 'application/views/'.$view;//content view file
	}
}
<?php
class Model
{
	public function get_data()
	{
	}
}
<?php
class Controller {
	
	public $model;
	public $view;
	
	function __construct()
	{
		$this->view = new View();
	}
	
		function action_index()
	{
	}
}
<?php
class Route
{
	static function start()
	{
		# default контроллер и действие
		$controller_name = 'Main';
		$action_name = 'index';
		
		$routes = explode('/', $_SERVER['REQUEST_URI']);
		if ( !empty($routes[1]) )
		{	
			$controller_name = $routes[1];
		}
		if ( !empty($routes[2]) )
		{
			$action_name = $routes[2];
		}
		$model_name = 'Model_'.$controller_name;
		$controller_name = 'Controller_'.$controller_name;
		$action_name = 'action_'.$action_name;
		$model_file = 'class-'.strtolower($model_name).'.php';
		$model_path = "application/models/".$model_file;
		if(file_exists($model_path))
		{
			include "application/models/".$model_file;
		}
		$controller_file = 'class-'.strtolower($controller_name).'.php';
		$controller_path = "application/controllers/".$controller_file;
		if(file_exists($controller_path))
		{
			include "application/controllers/".$controller_file;
		}
		else
		{
			Route::Page404();
		}
		$controller = new $controller_name;
		$action = $action_name;
		if(method_exists($controller, $action))
		{
			$controller->$action();
		}
		else
		{
			Route::Page404();
		}
	
	}
	function Page404()
	{
        $host = 'http://'.$_SERVER['HTTP_HOST'].'/';
        header('HTTP/1.1 404 Not Found');
		header("Status: 404 Not Found");
		header('Location:'.$host.'404');
	}
}