Example #1
0
 /**
  * @covers Zepto\Router::error()
  */
 public function testError()
 {
     $this->router->error(function () {
         echo '!!!';
     });
     $this->router->error();
     $this->expectOutputString('!!!');
 }
Example #2
0
 public function run()
 {
     // $_SERVER['REQUEST_URI'] -> /<controller>/<action>?<key>=<value>&<key>=<value>
     $request = [];
     // parse controller -> ['<controller>', '<action>?<key>=<value>&<key>=<value>']
     if (isset($_SERVER['REQUEST_URI'])) {
         $request = explode("/", $_SERVER['REQUEST_URI']);
         array_shift($request);
         // WORKAROUND: i.e. '/index.php' => ['', 'index.php']
         // no controller specified
         if (empty($request[0])) {
             $request[0] = DEFAULT_CONTROLLER;
         }
         // initialize parsed controller
         if (class_exists("app\\controllers\\{$request['0']}Controller")) {
             $controllerName = "app\\controllers\\{$request['0']}Controller";
             $controller = new $controllerName();
         } else {
             Router::error("404");
         }
     } else {
         $request[0] = DEFAULT_CONTROLLER;
         $controller = DEFAULT_CONTROLLER;
     }
     // parse action -> ['<action>', '<key>=<value>&<key>=<value>']
     if (count($request) > 1) {
         $action = explode("?", $request[1]);
         if (method_exists($controller, "action{$action['0']}")) {
             $actionName = "action{$action['0']}";
             $params = [];
             // parse params -> ['<key>=<value>', '<key>=<value>']
             // ISSUE: if we will pass i.e. ?param1=value|param2=value
             if (count($action) > 1) {
                 $paramsRaw = explode("&", $action[1]);
                 for ($i = 0; $i < count($paramsRaw); $i++) {
                     $param = explode("=", $paramsRaw[$i]);
                     $params[$param[0]] = $param[1];
                 }
             }
             // call action
             $controller->{$actionName}($params);
         } else {
             Router::error("404");
         }
     } else {
         $defaultAction = $controller->getDefaultAction();
         $action = "action{$defaultAction}";
         $controller->{$action}();
     }
 }
Example #3
0
            exit('The application environment is not set correctly.');
    }
}
//initiate config
new \core\config();
//create alias for Router
use core\router, helpers\url;
//define routes
Router::any('admin', '\\controllers\\admin\\admin@index');
Router::any('admin/login', '\\controllers\\admin\\auth@login');
Router::any('admin/logout', '\\controllers\\admin\\auth@logout');
Router::any('admin/users', '\\controllers\\admin\\users@index');
Router::any('admin/users/add', '\\controllers\\admin\\users@add');
Router::any('admin/users/edit/(:num)', '\\controllers\\admin\\users@edit');
Router::any('admin/posts', '\\controllers\\admin\\posts@index');
Router::any('admin/posts/add', '\\controllers\\admin\\posts@add');
Router::any('admin/posts/edit/(:num)', '\\controllers\\admin\\posts@edit');
Router::any('admin/posts/delete/(:num)', '\\controllers\\admin\\posts@delete');
Router::any('admin/cats', '\\controllers\\admin\\cats@index');
Router::any('admin/cats/add', '\\controllers\\admin\\cats@add');
Router::any('admin/cats/edit/(:num)', '\\controllers\\admin\\cats@edit');
Router::any('admin/cats/delete/(:num)', '\\controllers\\admin\\cats@delete');
Router::any('', '\\controllers\\blog@index');
Router::any('category/(:any)', '\\controllers\\blog@cat');
Router::any('(:any)', '\\controllers\\blog@post');
//if no route found
Router::error('\\core\\error@index');
//turn on old style routing
Router::$fallback = false;
//execute matched routes
Router::dispatch();
Example #4
0
/**USER ROUTES**/
Router::get('user/profile', 'user@profil');
Router::post('user/profile', 'user@profil');
Router::get('user', 'user@index');
Router::get('user/courts', 'user@courts');
Router::get('user/courts/create', 'user@addcourt');
Router::post('user/courts/create', 'user@addcourt');
Router::get('user/courts/edit/(:num)', 'user@editcourt');
Router::post('user/courts/edit/(:num)', 'user@editcourt');
Router::get('user/courts/delete/(:num)', 'user@deletecourt');
Router::get('user/tours', 'user@tours');
Router::post('user/tours', 'user@tours');
Router::get('user/tours/(:num)', 'user@teams');
Router::post('user/tours/(:num)', 'user@teams');
Router::get('user/tours/createteam/(:num)', 'user@createteam');
Router::post('user/tours/createteam/(:num)', 'user@createteam');
Router::get('user/tours/jointeam/(:num)', 'user@jointeam');
Router::post('user/tours/jointeam/(:num)', 'user@jointeam');
/**ADMIN ROUTES**/
Router::get('admin', 'admin@index');
Router::get('admin/profil', 'admin@profil');
Router::post('admin/profil', 'admin@profil');
Router::get('admin/staffs', 'admin@staffs');
Router::get('admin/staffs/create', 'admin@addstaff');
Router::post('admin/staffs/create', 'admin@addstaff');
Router::get('admin/staffs/delete/(:num)', 'admin@deletestaff');
//if no route found
Router::error('error@index');
//execute matched routes
Router::dispatch();
ob_flush();
Example #5
0
<?php

/**
 * app/routes.php
 *
 * @author Zangue <*****@*****.**>
 */
$router = new Router($app);
// Error handling
$app->notFound(function () use($router) {
    $router->error('404');
});
$app->error(function () use($router) {
    $router->error('500');
});
$router->get('/', 'Hello@index');
$router->get('/hello\\/', 'Hello@hello')->name('hello');
$router->get('/hello/:name/', 'Hello@hello')->name('name');
Example #6
0
<?php

session_start();
ini_set('display_errors', '1');
include_once 'conf.php';
Conf::init();
if (Conf::$DEBUG_MODE) {
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
}
include_once Conf::$DIR_MODELS . 'DBConnection.php';
include_once Conf::$DIR_MODELS . 'Router.php';
include_once Conf::$DIR_MODELS . 'Post.php';
include_once Conf::$DIR_MODELS . 'User.php';
include_once Conf::$DIR_CONTROLLERS . 'Controller.php';
include_once Conf::$DIR_CONTROLLERS . 'PostController.php';
include_once Conf::$DIR_CONTROLLERS . 'UserController.php';
Router::r('/post/create', 'PostController', 'getPostUpdatePage');
Router::r('/post/(:id)', 'PostController', 'getPostPage');
Router::r('/post/(:id)/update', 'PostController', 'getPostUpdatePage');
Router::r('/users', 'UserController', 'getUserListPage');
Router::r('/user/login', 'UserController', 'getUserLoginPage');
Router::r('/user/logout', 'UserController', 'getUserLoginPage');
Router::r('/user/(:id)', 'UserController', 'getUserPage');
Router::r('/', 'PostController', 'getHomePage');
Router::error('PostController', 'getHomePage');
Example #7
0
<?php

// Configs
require_once __DIR__ . '/app/config.ini.php';
// Autoloading init
spl_autoload_register(function ($class) {
    require_once ROOT_PATH . '/app/' . str_replace('\\', '/', $class) . '.php';
});
ob_start();
// Routes
Router::get('/', 'Blog@home');
Router::get('/(:date)/(:any)/', 'Blog@article');
Router::get('/category/(:any)/', 'Blog@category');
Router::get('/tag/(:any)/', 'Blog@tag');
Router::get('/posts/', 'Blog@posts');
Router::error('Blog@error404');
Router::dispatch();
ob_end_flush();