In general, the question is how to transfer the parameter to the controller using routing? for example, a line like this: http://example.ru/control/action/parametr using the following routing:
static function start() { // ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ $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 = strtolower($model_name).'.php'; $model_path = "application/models/".$model_file; if(file_exists($model_path)) { include "application/models/".$model_file; } // ΠΏΠΎΠ΄ΡΠ΅ΠΏΠ»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ» Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° $controller_file = strtolower($controller_name).'.php'; $controller_path = "application/controllers/".$controller_file; if(file_exists($controller_path)) { include "application/controllers/".$controller_file; } else { Route::ErrorPage404(); } // ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ $controller = new $controller_name; $action = $action_name; if(method_exists($controller, $action)) { // Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° $controller->$action(); } else { Route::ErrorPage404(); } }
call_user_func_array([$controller, $action], array_slice($routes, 2));- splash58