@@ -1,5 +1,5 @@ |
||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | function app_content($request, $args) { |
| 4 | - return ['data'=>['names'=>["John","Jane","Jack"]]]; |
|
| 4 | + return ['data'=>['names'=>["John", "Jane", "Jack"]]]; |
|
| 5 | 5 | } |
| 6 | 6 | \ No newline at end of file |
@@ -5,7 +5,7 @@ discard block |
||
| 5 | 5 | use \Psr\Http\Message\RequestInterface as Request; |
| 6 | 6 | use \Psr\Http\Message\ResponseInterface as Response; |
| 7 | 7 | |
| 8 | -class RSlim{ |
|
| 8 | +class RSlim { |
|
| 9 | 9 | |
| 10 | 10 | public $config = [ |
| 11 | 11 | 'base_dir' => null, |
@@ -31,40 +31,40 @@ discard block |
||
| 31 | 31 | $this->app = new \Slim\App($this->container); |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | - public function run_route($request, $response, $route, $action='main', $return_type='html', $args = []) |
|
| 34 | + public function run_route($request, $response, $route, $action = 'main', $return_type = 'html', $args = []) |
|
| 35 | 35 | { |
| 36 | - $controller = $this->config['base_dir'] . '/apps/' . $this->config['app_name'] .'/controllers/'. $route . '/' . $action . '.php'; |
|
| 36 | + $controller = $this->config['base_dir'] . '/apps/' . $this->config['app_name'] . '/controllers/' . $route . '/' . $action . '.php'; |
|
| 37 | 37 | $template = '/apps/' . $this->config['app_name'] . '/templates/' . $route . '/' . $action . '.html'; |
| 38 | 38 | |
| 39 | - if(file_exists($controller)){ |
|
| 39 | + if (file_exists($controller)) { |
|
| 40 | 40 | |
| 41 | 41 | require_once($controller); |
| 42 | 42 | |
| 43 | - if(!function_exists('app_content')){ |
|
| 44 | - return $this->not_found($request, $response, $return_type, 'Controller '. $route . '/' . $action." has not app_content function"); |
|
| 43 | + if (!function_exists('app_content')) { |
|
| 44 | + return $this->not_found($request, $response, $return_type, 'Controller ' . $route . '/' . $action . " has not app_content function"); |
|
| 45 | 45 | } |
| 46 | - if( $return_type == 'json' ){ |
|
| 46 | + if ($return_type == 'json') { |
|
| 47 | 47 | $status = 500; |
| 48 | 48 | $function_output = app_content($request, $args); |
| 49 | - if(!is_array( $function_output) ){ |
|
| 49 | + if (!is_array($function_output)) { |
|
| 50 | 50 | $function_output = ["status" => 500, "error" => "Internal Server Error"]; |
| 51 | 51 | } |
| 52 | - else{ |
|
| 53 | - if(!isset($function_output['status'])){ |
|
| 54 | - $function_output['status']=200; |
|
| 52 | + else { |
|
| 53 | + if (!isset($function_output['status'])) { |
|
| 54 | + $function_output['status'] = 200; |
|
| 55 | 55 | } |
| 56 | 56 | $status = (int) $function_output['status']; |
| 57 | 57 | } |
| 58 | - $response->getBody()->write( json_encode( $function_output ) ); |
|
| 59 | - $newResponse = $response->withHeader('Content-Type', 'application/json;charset=utf-8')->withHeader('X-Powered-By',"reformo/rslim")->withStatus($status); |
|
| 58 | + $response->getBody()->write(json_encode($function_output)); |
|
| 59 | + $newResponse = $response->withHeader('Content-Type', 'application/json;charset=utf-8')->withHeader('X-Powered-By', "reformo/rslim")->withStatus($status); |
|
| 60 | 60 | } |
| 61 | - else{ |
|
| 62 | - if (!file_exists($this->config['base_dir'].$template)){ |
|
| 63 | - throw new \Exception("<strong>Template file not found!</strong> ".$route.'/'.$action." needs a template file at:".$template ); |
|
| 61 | + else { |
|
| 62 | + if (!file_exists($this->config['base_dir'] . $template)) { |
|
| 63 | + throw new \Exception("<strong>Template file not found!</strong> " . $route . '/' . $action . " needs a template file at:" . $template); |
|
| 64 | 64 | } |
| 65 | 65 | $function_output = app_content($request, $args); |
| 66 | - if (!isset($function_output['data'])){ |
|
| 67 | - $function_output['data']=[]; |
|
| 66 | + if (!isset($function_output['data'])) { |
|
| 67 | + $function_output['data'] = []; |
|
| 68 | 68 | } |
| 69 | 69 | $loader = new \Twig_Loader_Filesystem($this->config['base_dir']); |
| 70 | 70 | $this->twig = new \Twig_Environment($loader, [ |
@@ -74,7 +74,7 @@ discard block |
||
| 74 | 74 | ]); |
| 75 | 75 | $filter = new \Twig_SimpleFunction( |
| 76 | 76 | 'rwidget_*_*', |
| 77 | - function ($widget_name, $widget_action, $args=[]) { |
|
| 77 | + function($widget_name, $widget_action, $args = []) { |
|
| 78 | 78 | |
| 79 | 79 | $widget_file = $this->config['base_dir'] . '/apps/' . $this->config['app_name'] . '/widgets/' . $widget_name . '/' . $widget_action . ".php"; |
| 80 | 80 | $widget_template = '/apps/' . $this->config['app_name'] . '/templates/_widgets/' . $widget_name . '/' . $widget_action . '.html'; |
@@ -89,7 +89,7 @@ discard block |
||
| 89 | 89 | if (is_string($widget_content)) { |
| 90 | 90 | return $widget_content; |
| 91 | 91 | } |
| 92 | - else{ |
|
| 92 | + else { |
|
| 93 | 93 | throw new \Exception("<strong>Widget should return string:</strong> " . $widget_name . '/' . $widget_action . "!"); |
| 94 | 94 | } |
| 95 | 95 | } else { |
@@ -104,70 +104,70 @@ discard block |
||
| 104 | 104 | $this->twig->addFunction($filter); |
| 105 | 105 | $this->twig->addGlobal('runtime_config', $this->config); |
| 106 | 106 | $this->twig->addGlobal('url_params', $request->getParams()); |
| 107 | - $function_output['app_content']=$this->twig->render($template, $function_output['data']); |
|
| 107 | + $function_output['app_content'] = $this->twig->render($template, $function_output['data']); |
|
| 108 | 108 | $main_template_name = 'default'; |
| 109 | 109 | if (isset($function_output['app_main_template'])) { |
| 110 | 110 | $main_template_name = $function_output['app_main_template']; |
| 111 | 111 | } |
| 112 | - $main_template = '/apps/'.$this->config['app_name'] . '/templates/_' . $main_template_name . '.html'; |
|
| 112 | + $main_template = '/apps/' . $this->config['app_name'] . '/templates/_' . $main_template_name . '.html'; |
|
| 113 | 113 | |
| 114 | - if (!file_exists($this->config['base_dir'] . $main_template)){ |
|
| 115 | - throw new \Exception("<strong>Main emplate file not found!</strong> ".$route.'/'.$action." needs a main template file at:".$main_template ); |
|
| 114 | + if (!file_exists($this->config['base_dir'] . $main_template)) { |
|
| 115 | + throw new \Exception("<strong>Main emplate file not found!</strong> " . $route . '/' . $action . " needs a main template file at:" . $main_template); |
|
| 116 | 116 | } |
| 117 | - $app_content = $this->twig->render( $main_template, $function_output); |
|
| 118 | - $newResponse=$response->withHeader('X-Powered-By',"reformo/rslim"); |
|
| 117 | + $app_content = $this->twig->render($main_template, $function_output); |
|
| 118 | + $newResponse = $response->withHeader('X-Powered-By', "reformo/rslim"); |
|
| 119 | 119 | $newResponse->write($app_content); |
| 120 | 120 | } |
| 121 | 121 | return $newResponse; |
| 122 | 122 | } |
| 123 | - else{ |
|
| 124 | - return $this->not_found($request, $response, $return_type, 'Controller '. $route . '/' . $action." not found"); |
|
| 123 | + else { |
|
| 124 | + return $this->not_found($request, $response, $return_type, 'Controller ' . $route . '/' . $action . " not found"); |
|
| 125 | 125 | } |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | - public function not_found($request, $response, $return_type='html',$message=""){ |
|
| 128 | + public function not_found($request, $response, $return_type = 'html', $message = "") { |
|
| 129 | 129 | |
| 130 | - $not_found_template = '/apps/'.$this->config['app_name'] . '/templates/_404.html'; |
|
| 131 | - if($return_type == 'json'){ |
|
| 132 | - $response->getBody()->write( json_encode( ['status'=>404, 'message'=>$message] ) ); |
|
| 133 | - return $response->withHeader('Content-Type', 'application/json;charset=utf-8')->withHeader('X-Powered-By',"reformo/rslim")->withStatus(404); |
|
| 130 | + $not_found_template = '/apps/' . $this->config['app_name'] . '/templates/_404.html'; |
|
| 131 | + if ($return_type == 'json') { |
|
| 132 | + $response->getBody()->write(json_encode(['status'=>404, 'message'=>$message])); |
|
| 133 | + return $response->withHeader('Content-Type', 'application/json;charset=utf-8')->withHeader('X-Powered-By', "reformo/rslim")->withStatus(404); |
|
| 134 | 134 | } |
| 135 | - else{ |
|
| 135 | + else { |
|
| 136 | 136 | return $response->withStatus(404) |
| 137 | - ->withHeader('Content-Type', 'text/html')->withHeader('X-Powered-By',"reformo/rslim") |
|
| 137 | + ->withHeader('Content-Type', 'text/html')->withHeader('X-Powered-By', "reformo/rslim") |
|
| 138 | 138 | ->write($this->twig->render($not_found_template, ['message'=>$message])); |
| 139 | 139 | } |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | - public function register($request_method, $pattern, $controller, $return_type='html') |
|
| 142 | + public function register($request_method, $pattern, $controller, $return_type = 'html') |
|
| 143 | 143 | { |
| 144 | - $this->app->map([strtoupper($request_method)], $pattern, function (Request $req, Response $res, $args ){ |
|
| 145 | - list($route,$action) = explode("/",$args['controller']); |
|
| 144 | + $this->app->map([strtoupper($request_method)], $pattern, function(Request $req, Response $res, $args) { |
|
| 145 | + list($route, $action) = explode("/", $args['controller']); |
|
| 146 | 146 | return $args['RSlim']->run_route($req, $res, $route, $action, $args['return_type'], $args); |
| 147 | 147 | })->setArguments(['controller'=>$controller, 'return_type'=>$return_type, 'RSlim'=>$this]); |
| 148 | 148 | } |
| 149 | 149 | |
| 150 | 150 | public function run() |
| 151 | 151 | { |
| 152 | - $this->container['notFoundHandler'] = function ($c) { |
|
| 153 | - return function (Request $req, Response $res) use ($c) { |
|
| 152 | + $this->container['notFoundHandler'] = function($c) { |
|
| 153 | + return function(Request $req, Response $res) use ($c) { |
|
| 154 | 154 | return $c['response'] |
| 155 | 155 | ->withStatus(404) |
| 156 | - ->withHeader('Content-Type', 'text/html')->withHeader('X-Powered-By',"reformo/rslim") |
|
| 156 | + ->withHeader('Content-Type', 'text/html')->withHeader('X-Powered-By', "reformo/rslim") |
|
| 157 | 157 | ->write('<h1>404 - Requested URL not found</h1>'); |
| 158 | 158 | }; |
| 159 | 159 | }; |
| 160 | - if ($this->config['bypass_error_handlers'] === true ) { |
|
| 161 | - $this->container['errorHandler'] = function ($container) { |
|
| 162 | - return function ($request, $response, $exception) use ($container) { |
|
| 160 | + if ($this->config['bypass_error_handlers'] === true) { |
|
| 161 | + $this->container['errorHandler'] = function($container) { |
|
| 162 | + return function($request, $response, $exception) use ($container) { |
|
| 163 | 163 | $response->getBody()->rewind(); |
| 164 | 164 | return $response->withStatus(500) |
| 165 | 165 | ->withHeader('Content-Type', 'text/html') |
| 166 | 166 | ->write($exception->getMessage()); |
| 167 | 167 | }; |
| 168 | 168 | }; |
| 169 | - $this->container['phpErrorHandler'] = function ($container) { |
|
| 170 | - return function ($request, $response, $error) use ($container) { |
|
| 169 | + $this->container['phpErrorHandler'] = function($container) { |
|
| 170 | + return function($request, $response, $error) use ($container) { |
|
| 171 | 171 | $response->getBody()->rewind(); |
| 172 | 172 | return $response->withStatus(500) |
| 173 | 173 | ->withHeader('Content-Type', 'text/html') |