-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.php
145 lines (104 loc) · 3.97 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?php
##############################################################################
# requirements - must be included in your index.php
##############################################################################
#
require_once 'lib/fsl.php';
##############################################################################
# configurations
##############################################################################
# All in config directory
##############################################################################
# code to run before route execution
##############################################################################
#
function before($route)
{
header("X-LIM-route-function: ".$route['callback']);
option('routecallback', $route['callback']);
layout('fsl_default_layout.php');
}
##############################################################################
# sample routes
##############################################################################
#
# routes and controllers
# ----------------------------------------------------------------------------
# Sample RESTFul map:
#
# HTTP Method | Url path | Controller function
# -------------+-------------------+-------------------------------------------
# GET | / | hello_world
//basic hello world
dispatch('/', 'hello_world');
//example showing a json REST response
dispatch('/api', 'api');
//example showing JWT usage
dispatch('/jwt', 'jwt');
//example showing fsl_curl http request
dispatch('/curl', 'curl');
//example showing fsl_hash
dispatch('/hash', 'create_hash');
//show session
dispatch('/showip/:what/:who', 'showip');
//kill session
dispatch('/kill/:who', 'kill_session');
//HTTP POST route example. FSL also supports PUT, PATCH, DELETE
dispatch_post('/welcome/:name', 'welcome');
//other random examples
dispatch('/are_you_ok/:name', 'are_you_ok');
dispatch('/how_are_you/:name', 'how_are_you');
dispatch('/images/:name/:size', 'image_show');
dispatch('/*.jpg/:size', 'image_show_jpeg_only');
##############################################################################
# run after function
##############################################################################
#
function after($output, $route)
{
// Uncomment to show request params and response timing
// Helpful for debuggin
/*
$time = number_format( microtime(true) - LIM_START_MICROTIME, 6);
$output .= "\n<!-- page rendered in $time sec., on ".date(DATE_RFC822)." -->\n";
$output .= "<!-- for route\n";
$output .= print_r($route, true);
$output .= "-->";
*/
return $output;
}
run();
##############################################################################
# Data Models
##############################################################################
#
##############################################################################
# layouts (views) and html templates
##############################################################################
# Layouts are autoloaded from views directory or can be referended
# as a function like below.
function html_my_layout($vars){ extract($vars);?>
<!doctype html>
<html lang="en">
<body>
Hello world!
</body>
</html>
<?php }
function html_welcome($vars){ extract($vars);?>
<h3>Hello <?php echo $name?>!</h3>
<p><a href="<?php echo url_for('/how_are_you/', $name)?>">How are you <?php echo $name?>?</a></p>
<hr>
<p><a href="<?php echo url_for('/images/soda_glass.jpg')?>">
<img src="<?php echo url_for('/images/soda_glass.jpg/thumb')?>"></a></p>
<?php }
##############################################################################
# custom error declaration
##############################################################################
#
// Custom 404 error example
/*function not_found($errno, $errstr, $errfile, $errline){
echo "<center><img src=" . url_for('//_lim_public/img/404.gif') . " border=0><BR><BR>Your request for" . $errstr . " came up ghosts.</center>" ;
}
*/
?>