Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.21 KB | None | 0 0
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: Szymon
  5.  * Date: 2/23/2019
  6.  * Time: 8:43 PM
  7.  */
  8.  
  9.     class Init
  10.     {
  11.         public function __construct()
  12.         {
  13.             //echo '<pre>';
  14.  
  15.             $request = new Request();
  16.             $r = new Route($request);
  17.  
  18.             /** List of routes */
  19.                 /** website */
  20.                     $r->get('/', 'WebsiteController@index');
  21.                     $r->get('/about', "WebsiteController@about");
  22.                     $r->get('/services', 'WebsiteController@services');
  23.                     $r->get('/service/:id', 'WebsiteController@service');
  24.                     $r->get('/prices', "WebsiteController@prices");
  25.                     $r->get('/promotions', "WebsiteController@promotions");
  26.                     //$r->get('/cabinets', 'WebsiteController@cabinets');
  27.                     //$r->get('/cabinets/:id', 'WebsiteController@cabinet');
  28.                     $r->get('/contact', 'WebsiteController@contact');
  29.  
  30.                 /** login register */
  31.                     $r->get('/login', 'login/LoginController@index', "Session@notLogin");
  32.                     $r->post('/login', 'login/LoginController@login', "Session@notLogin");
  33.                     $r->get('/register', 'login/LoginController@index', "Session@notLogin");
  34.                     $r->post('/register', 'login/LoginController@register', "Session@notLogin");
  35.                 /** client panel */
  36.                     $r->get('/panel', 'client/HomeController@index', ["Session@isLogin",'Session@isAdmin']);
  37.                
  38.                         $r->get('/panel/profile', 'client/UserController@index');
  39.                         $r->put('/panel/profile', 'client/UserController@update');
  40.                         $r->get('/panel/visits', 'client/VisitsController@index');
  41.                 /** admin panel */
  42.                     $r->get('/admin', 'admin/HomeController@index', ["Session@isLogin", 'Session@isAdmin']);
  43.                     /** standardowa piątka cruda */
  44.                         //USERS
  45.                         $r->get('/admin/users', 'admin/UsersController@index', ["Session@isLogin", 'Session@isAdmin'] );
  46.                         $r->get('/admin/users/:id', 'admin/UsersController@show', ["Session@isLogin", 'Session@isAdmin'] );
  47.                         $r->post('/admin/users', 'admin/UsersController@store', ["Session@isLogin", 'Session@isAdmin'] );
  48.                         $r->patch('/admin/users/:id', 'admin/UsersController@update', ["Session@isLogin", 'Session@isAdmin'] );
  49.                         $r->delete('/admin/users/:id', 'admin/UsersController@destroy', ["Session@isLogin", 'Session@isAdmin'] );
  50.                         $r->get('/admin/adduser', 'admin/UsersController@create', ["Session@isLogin", "Session@isAdmin"]);
  51.                         $r->get("/admin/users/modal/:id", "admin/UsersController@modal", ["Session@isLogin", 'Session@isAdmin']);
  52.                         //CABINETS
  53.                         $r->crud("/admin/cabinets", 'admin/CabinetsController', ["Session@isLogin", "Session@isAdmin:3"]);
  54.                         $r->get('/admin/addcabinet', 'admin/CabinetsController@create', ["Session@isLogin", "Session@isAdmin:3"]);
  55.                         //SERVICES
  56.                         $r->crud("/admin/services", 'admin/ServicesController', ["Session@isLogin", "Session@isAdmin:3"]);
  57.                         $r->get('/admin/addservice', 'admin/ServicesController@create', ["Session@isLogin", "Session@isAdmin:3"]);
  58.                         //VISITS
  59.                         $r->crud('/admin/visits', 'admin/VisitsController', ["Session@isLogin", "Session@isAdmin"]);
  60.                         $r->get('/admin/addvisit', 'admin/VisitsController@create', ["Session@isLogin", "Session@isAdmin"]);
  61.             /** reszta stron */
  62.                         //VISITS AJAX
  63.                         $r->get('/admin/ajax/visits/getServicesForCabinet/:id', 'admin/ajax/VisitsAjaxController@getServicesForCabinet', ["Session@isLogin", "Session@isAdmin"]);
  64.                         //PRICES AJAX
  65.                         $r->crud('/admin/prices', 'admin/ajax/PricesController', ["Session@isLogin", "Session@isAdmin:3"]);
  66.                         //VARIANTS AJAXX
  67.                         $r->crud('/admin/ajax/variants', 'admin/ajax/VariantsController', ["Session@isLogin", "Session@isAdmin:3"]);
  68.                         //ASSIGNMENT AJAX
  69.                         $r->get('/admin/ajax/assignment', 'admin/ajax/AssignerController@get', ["Session@isLogin", "Session@isAdmin:3"]);
  70.                         $r->delete('/admin/ajax/assignment', 'admin/ajax/AssignerController@destroy', ["Session@isLogin", "Session@isAdmin:3"]);
  71.                         $r->post('/admin/ajax/assignment', 'admin/ajax/AssignerController@store', ["Session@isLogin", "Session@isAdmin:3"]);
  72.                 /**  CLIENT PANEL */
  73.                         $r->get('/panel', 'client/HomeController@index', ['Session@isLogin']);
  74.  
  75.                     $r->get('/test', 'TestController@index');
  76.                     $r->post('/test', 'TestController@post');
  77.                     $r->put('/test', 'TestController@put');
  78.                     $r->delete('/test', 'TestController@delete');
  79.  
  80.             /**
  81.              *  RESOLVE Route
  82.              */
  83.             $r->resolve();
  84.  
  85.             if(!$r->set){
  86.                 //ob_clean(); // what happend when page is not found
  87.                 include('views/404.php');
  88.                 die();
  89.             }
  90.             $middleware = $r->set['middleware'];
  91.             $controller = $r->set['controller'];
  92.             $method = $r->set['method'];
  93.             $attribute = isset($r->set['attribute']) ? $r->set['attribute'] : null;
  94.  
  95.             /**
  96.              * Start Session
  97.              */
  98.                 //TODO NARAZIE OBSLUGIWANE PRZEZ FUNKCJE
  99.  
  100.             /**
  101.              *  Handle middleware :)
  102.              */
  103.             try {
  104.                 // If middlewares are success run controller
  105.                 if(Middleware::check($middleware)){
  106.                     $controller = $this->runController($controller, $method, $attribute, $request);
  107.                 }
  108.             } catch (Exception $e) { // catch (\Throwable $th)
  109.                 //ob_clean();
  110.                 echo $e->getMessage();
  111.             } catch (BadMethodCallException $e){
  112.                 echo $e->getMessage();
  113.             }
  114.  
  115.  
  116.             //echo '</pre>';
  117.         }
  118.  
  119.         /**
  120.          * Run Controller
  121.          */
  122.         private function runController($controller, $method, $attribute, $request){
  123.  
  124.             if(!file_exists(APPROOT.CDIR.$controller.'.php')) throw new BadMethodCallException("Controller don't exist");
  125.             require_once(APPROOT.CDIR.$controller.'.php');
  126.             $controller = explode('/', $controller);
  127.             $controller = end($controller);
  128.             //$controller = strstr($controller, '/')? ltrim(strstr($controller, '/'), '/') : $controller;
  129.             $controller = new $controller();
  130.             $controller->setRequest($request);
  131.  
  132.             if(!method_exists ($controller, $method)) throw new BadMethodCallException('Bad Controller method call');
  133.             if($attribute!==null) return $controller->$method($attribute);
  134.  
  135.             return $controller->$method();
  136.         }
  137.  
  138.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement