-
Notifications
You must be signed in to change notification settings - Fork 110
/
TODO
143 lines (98 loc) · 4.9 KB
/
TODO
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
# TODO #
- Optimize routing performances:
- build routes only when necessary
- reduce routes array to the current method request before trying to find the current route matching pattern
- See if there are others easy performance improvments to do
## Goals for next releases ##
### 0.5.1 ###
- cleanup documentation
- put everything in the github wiki
- add a Getting Started section
- make the README hyper-simplified; acts as a resume, lits of features + and a table of content
- remove reference to html API: no time to maintain it and source code is enough. Maybe we can simply use a two-columns documentation generated with something like http://rtomayko.github.com/rocco/ ?
- Add instructions about running tests
- adding contributors/thanks in AUTHORS
### 0.6 ###
- in README, complete the section about hooks and user defined functions
- add file controller feature
- a controller can be a file if controller callback string ending with '.php'
- this allow to push direcly the procedural code of the controller in a file, without declaring a controller function
- it end with a return, like a normal controller
- code is loaded in a container function when route is built, just before execution
function controller_loader($file)
{
return include $file;
}
- adding abstracts (for handling enhanced callback controllers)
- route_callback_[controller_]exists()
- route_callback_[controller_]create()
- route_callback_[controller_]call()
- add a flash_keep() function like in rails (http://guides.rubyonrails.org/action_controller_overview.html#the-flash)
- in debug output, formating debug_backtrace to be me readable (like debug_backtrace output but with extra informations that can be toggled). Using show_settings view by kematzy ? http://github.com/kematzy/limonade/commit/02ad17260912757b73ff809acad8e970efafc4b4
- improve security in render_file with a safe_dir option
- new redirect_to (support for https)
- Use callback pseudo-type instead of function in error user defined handling.
### 0.7 ###
#### Adding option() setters functions
- useful for filtering option value before storing it
- setter function name is based on the name of the option. Example: for option('debug'), setter is option_debug($value)
- if setter doesn't exist, we store directly option value, else we use the value returned by the setter
#### Adding callbacks to option() setting
- useful to call some actions after setting an option
- callback is based on the name of the option. Example: for option('debug'), callback is option_debug_callback($value)
#### Adding support for handling php settings with option() function
- this will help have more consistency, and setting php options at the begining of the run
- all options that begins with `php_` are mapped with ini_set() options in read and write
- adding an option('php_display_errors'); by default ini_set('display_errors', 0) in production env, but enabled if env is dev (unless matching option is enabled)
- a default callback `php_display_errors` will be there to set correct limonade debug level
### 0.8 ###
- Zestify Limonade
- refactor main dipatching loop
- allow zest response return in controllers
### 0.9 ###
- improve new Zest based Limonade
- templates engines: improve rendering features to allow easy use of alternate renderers
- have a look at http://github.com/rtomayko/tilt
- adding optional renderers (markdown, haml, textile, tenjin, phptal…)
if(class_exists('Haml'))
{
function haml($str, $layout=null, $vars=array())
{
#…
}
}
else
{
function haml($str, $layout=null, vars=array())
{
trigger_error(__FUNCTION__ . '(): Haml lib is required to use haml rendering.',
E_USER_WARNING)
}
}
- optional auto-detection of the engine to use depending on templates extension (.html.haml…)
### 1.0 ###
- contextual help in development environment:
- describe how routing works, how to create a controller...
- suggest solutions on errors
- on blank page, tell about the missing return in controller (common mistake...) ?
- tests
- documentation
- tests
- documentation
- tests
- …
- release ;-)
## And always ##
- more unit and functional tests
## Later ##
- implement user agent detection option in routing
Documentation:
- reformat code comments in order to use Natural docs (http://www.naturaldocs.org/) ?
- http caching
- file caching
- x-sender headers for serving static files directly thru Apache and Lighttpd
## Think about it ##
- make post, put and delete params accessible with the params() function
(take care of possible conflict with a route param: by default override get params, but raise an error notice). Really useful ?
- deleting deprecated ['HTTP_SERVER_VARS'], ['HTTP_GET_VARS']... (<http://www.php.net/manual/fr/reserved.variables.post.php>...)
- params function should be singular like option ?