require_once SYSTEM_PATH . 'core/Log.php'; require_once SYSTEM_PATH . 'core/Benchmark.php'; require_once SYSTEM_PATH . 'database/Database.php'; /* * 加载应用文件 */ if (file_exists($file_path = APP_PATH . "common.php")) { require_once $file_path; } //加载APP的common文件 /* * 路由设置 */ $router = new Router(); $c = $router->getController(); $m = $router->getMethod(); $router->setSuperGET(); /* * 实例化控制器 */ if (class_exists($c = ucfirst($c) . "Controller")) { $controller = new $c(); if (method_exists($controller, $m)) { $controller->before(); $controller->{$m}(); $controller->after(); } else { show_404(); } } else { show_404();
//эту функцию потом перенести в ядро function __autoload($class_name) { $config = (include 'config.php'); $file = "include/" . $class_name . ".php"; if (file_exists($file)) { include $file; } else { die("Класс {$class_name} не найден"); } } Router::parse($_GET['url']); $controller_name = Router::getController(); $controller_path = "controllers/" . Router::getController() . ".php"; $controller_method = Router::getMethod(); $params = Router::getParams(); if (file_exists($controller_path)) { require_once $controller_path; if (class_exists($controller_name)) { $controller = new $controller_name(); if (method_exists($controller, $controller_method)) { $controller->{$controller_method}(); } else { //у нас однозначно должен быть определен метод index $controller->index(); } } else { die("Файл найден, но класс неопределен"); } } else {
<?php include "./swoole_include.php"; $http = new swoole_http_server("0.0.0.0", 9501); $http->on('request', function ($request, $response) { if ($request->server['request_uri'] !== '/favicon.ico') { //设置参数 $req = new Request($request); //var_dump( $request ); //获取类.方法.参数 $rou = new Router($req); $class = $rou->getClass(); $method = $rou->getMethod(); $args = $rou->getArgs(); //按需加载类文件 $fileName = SWOOLE_MODEL_PATH . $class . '.class.php'; if (is_file($fileName)) { require_once $fileName; } else { Log::write($class . ' is not found', 'EMERG', 3, 'swoole'); $response->end('url is error, please check your url!'); } //调用回调函数,获取数据 $data = call_user_func_array(array($class, $method), $args); //返回处理信息 $res = new Response($data); $response->end($res->getData()); } }); $http->start();
/** * Output API result * * @param bool $success Is success flag * @param Router $router Current instance of Router * @param string|array $data Output data */ function setResult($success, Router $router, $data = "") { header("Content-Type: application/json"); echo json_encode(array("module" => $router->getModule(), "method" => $router->getMethod(), "success" => (bool) $success, "data" => $data)); }
<?php require_once "Loader.php"; require_once 'Router.php'; include_once realpath("controllers/baseController.php"); include_once realpath("models/baseModel.php"); Loader::loadClass('Session'); Loader::loadClass('Cookie'); Session::start(); //Loader::loadClass('Cookie'); //Cookie::set('interval', "100", "1", "/", false, false); //Cookie::set('intervalDrugi', "100", "1", "/", false, false); //$cookie = Cookie::get("interval"); //var_dump($cookie); //$del = Cookie::delete("intervalDrugi"); //var_dump($del); /** * $_GET['rt'] automatski setova u .htaccess fajlu regularnim izrazom */ $route = new Router($_GET['rt']); $controller = $route->getController(); $method = $route->getMethod(); $params = $route->getParams(); Loader::loadController($controller, $method, $params);