routes; } /** * @param $middleware string */ public function addMiddleware($middleware) { $this->middleware[] = $middleware; } private function getOptions($httpMethod, $url, $business, $method, $permissions, $middleware) { if (!is_array($permissions)) { $permissions = array($permissions); } if (!is_array($middleware)) { $middleware = array($middleware); } $permissions_string = implode(",", $permissions); $middleware_string = []; foreach (array_merge($this->middleware, $middleware) as $mid) { $middleware_string[] = $mid . (strpos($mid, ":") !== false ? "," : ":") . $permissions_string; } if (strpos($business, "\\") === false) { $business = "App\\Http\\Business\\" . $business . "Business"; } $route = new LuRouteDbo(); $route->setUrl($url); $route->setBusinessClass($business); $route->setBusinessMethod($method); $route->setMiddlware($middleware_string); $route->setPermissions($permissions); $route->setMethod($httpMethod); $this->routes[] = $route; return [function() use($business, $method) { $controller = new LuController(); return $controller->execute($business, $method); }, 'middleware' => $middleware_string]; } /** * @param $url string * @param $business string * @param $method string * @param array $permissions string|string[] * @param array $middleware string|string[] * @return mixed */ public function get($url, $business, $method, $permissions = array(), $middleware = array()) { global $app; return $app->get($url, $this->getOptions("GET", $url, $business, $method, $permissions, $middleware)); } /** * @param $url string * @param $business string * @param $method string * @param array $permissions string|string[] * @param array $middleware string|string[] * @return mixed */ public function post($url, $business, $method, $permissions = array(), $middleware = array()) { global $app; return $app->post($url, $this->getOptions("POST", $url, $business, $method, $permissions, $middleware)); } /** * @param $url string * @param $business string * @param $method string * @param array $permissions string|string[] * @param array $middleware string|string[] * @return mixed */ public function put($url, $business, $method, $permissions = array(), $middleware = array()) { global $app; return $app->put($url, $this->getOptions("PUT", $url, $business, $method, $permissions, $middleware)); } /** * @param $url string * @param $business string * @param $method string * @param array $permissions string|string[] * @param array $middleware string|string[] * @return mixed */ public function delete($url, $business, $method, $permissions = array(), $middleware = array()) { global $app; return $app->delete($url, $this->getOptions("DELETE", $url, $business, $method, $permissions, $middleware)); } }