Skip to content

Commit 5a30eec

Browse files
authored
Completed -v1.2.1
Completed -v1.2.1 - Added special map route method
2 parents a942920 + 8477741 commit 5a30eec

File tree

8 files changed

+1705
-1705
lines changed

8 files changed

+1705
-1705
lines changed

.github/FUNDING.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# These are supported funding model platforms
22

3-
github: ['dconco']
3+
github: 'dconco'
44
patreon: # Replace with a single Patreon username
55
open_collective: # Replace with a single Open Collective username
6-
ko_fi: ['Ko-fi.com/dconco']
6+
ko_fi: 'Ko-fi.com/dconco'
77
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
88
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
99
liberapay: # Replace with a single Liberapay username

App/Functions.php

Lines changed: 129 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,130 +1,130 @@
1-
<?php
2-
3-
use PhpSlides\Controller\RouteController;
4-
5-
/**
6-
* -----------------------------------------------------------
7-
* |
8-
* @param mixed $filename The file which to gets the contents
9-
* @return mixed The executed included file received
10-
* |
11-
* -----------------------------------------------------------
12-
*/
13-
function slides_include ($filename)
14-
{
15-
$output = RouteController::slides_include($filename);
16-
return $output;
17-
}
18-
19-
20-
21-
$routes = [];
22-
23-
/**
24-
* Give route a name and value
25-
*
26-
* @param string $name Name of the given route to be specified
27-
* @param string|array $value Named route value
28-
* @return void
29-
*/
30-
function add_route_name (string $name, string|array $value): void
31-
{
32-
global $routes;
33-
$routes[$name] = $value;
34-
}
35-
36-
37-
38-
/**
39-
* Get Route results from named route
40-
*
41-
* @param string|null $name The name of the route to return
42-
* @param array|null $param If the route has parameter, give the parameter a value
43-
*
44-
* @return array|object|string returns the route value
45-
*/
46-
function route (string|null $name = null, array|null $param = null): array|object|string
47-
{
48-
global $routes;
49-
50-
if ($name === null)
51-
{
52-
$route_class = new stdClass();
53-
54-
foreach ($routes as $key => $value)
55-
{
56-
if (preg_match_all("/(?<={).+?(?=})/", $value))
57-
{
58-
$route_class->$key = function (string ...$args) use ($routes, $value, $key)
59-
{
60-
$route = '';
61-
62-
if (count($args) === 0)
63-
{
64-
$route = $routes[$key];
65-
}
66-
else
67-
{
68-
for ($i = 0; $i < count($args); $i++)
69-
{
70-
if ($i === 0)
71-
{
72-
$route = preg_replace("/\{[^}]+\}/", $args[$i], $value, 1);
73-
}
74-
else
75-
{
76-
$route = preg_replace("/\{[^}]+\}/", $args[$i], $route, 1);
77-
}
78-
}
79-
}
80-
return $route;
81-
};
82-
}
83-
else
84-
{
85-
$route_class->$key = $value;
86-
}
87-
}
88-
89-
return $route_class;
90-
}
91-
else
92-
{
93-
if (!array_key_exists($name, $routes))
94-
{
95-
throw new Exception("No route with specified route name `route('$name')`");
96-
}
97-
else
98-
{
99-
if ($param === null)
100-
{
101-
return $routes[$name];
102-
}
103-
else
104-
{
105-
$route = '';
106-
107-
for ($i = 0; $i < count($param); $i++)
108-
{
109-
if ($i === 0)
110-
{
111-
$route = preg_replace("/\{[^}]+\}/", $param[$i], $routes[$name], 1);
112-
}
113-
else
114-
{
115-
$route = preg_replace("/\{[^}]+\}/", $param[$i], $route, 1);
116-
}
117-
}
118-
return $route;
119-
}
120-
}
121-
}
122-
}
123-
124-
define("APP_DEBUG", getenv("APP_DEBUG", true));
125-
126-
const GET = "GET";
127-
const PUT = "PUT";
128-
const POST = "POST";
129-
const PATCH = "PATCH";
1+
<?php
2+
3+
use PhpSlides\Controller\RouteController;
4+
5+
/**
6+
* -----------------------------------------------------------
7+
* |
8+
* @param mixed $filename The file which to gets the contents
9+
* @return mixed The executed included file received
10+
* |
11+
* -----------------------------------------------------------
12+
*/
13+
function slides_include ($filename)
14+
{
15+
$output = RouteController::slides_include($filename);
16+
return $output;
17+
}
18+
19+
20+
21+
$routes = [];
22+
23+
/**
24+
* Give route a name and value
25+
*
26+
* @param string $name Name of the given route to be specified
27+
* @param string|array $value Named route value
28+
* @return void
29+
*/
30+
function add_route_name (string $name, string|array $value): void
31+
{
32+
global $routes;
33+
$routes[$name] = $value;
34+
}
35+
36+
37+
38+
/**
39+
* Get Route results from named route
40+
*
41+
* @param string|null $name The name of the route to return
42+
* @param array|null $param If the route has parameter, give the parameter a value
43+
*
44+
* @return array|object|string returns the route value
45+
*/
46+
function route (string|null $name = null, array|null $param = null): array|object|string
47+
{
48+
global $routes;
49+
50+
if ($name === null)
51+
{
52+
$route_class = new stdClass();
53+
54+
foreach ($routes as $key => $value)
55+
{
56+
if (preg_match_all("/(?<={).+?(?=})/", $value))
57+
{
58+
$route_class->$key = function (string ...$args) use ($routes, $value, $key)
59+
{
60+
$route = '';
61+
62+
if (count($args) === 0)
63+
{
64+
$route = $routes[$key];
65+
}
66+
else
67+
{
68+
for ($i = 0; $i < count($args); $i++)
69+
{
70+
if ($i === 0)
71+
{
72+
$route = preg_replace("/\{[^}]+\}/", $args[$i], $value, 1);
73+
}
74+
else
75+
{
76+
$route = preg_replace("/\{[^}]+\}/", $args[$i], $route, 1);
77+
}
78+
}
79+
}
80+
return $route;
81+
};
82+
}
83+
else
84+
{
85+
$route_class->$key = $value;
86+
}
87+
}
88+
89+
return $route_class;
90+
}
91+
else
92+
{
93+
if (!array_key_exists($name, $routes))
94+
{
95+
throw new Exception("No route with specified route name `route('$name')`");
96+
}
97+
else
98+
{
99+
if ($param === null)
100+
{
101+
return $routes[$name];
102+
}
103+
else
104+
{
105+
$route = '';
106+
107+
for ($i = 0; $i < count($param); $i++)
108+
{
109+
if ($i === 0)
110+
{
111+
$route = preg_replace("/\{[^}]+\}/", $param[$i], $routes[$name], 1);
112+
}
113+
else
114+
{
115+
$route = preg_replace("/\{[^}]+\}/", $param[$i], $route, 1);
116+
}
117+
}
118+
return $route;
119+
}
120+
}
121+
}
122+
}
123+
124+
define("APP_DEBUG", getenv("APP_DEBUG", true));
125+
126+
const GET = "GET";
127+
const PUT = "PUT";
128+
const POST = "POST";
129+
const PATCH = "PATCH";
130130
const DELETE = "DELETE";

0 commit comments

Comments
 (0)