forked from agavi/agavi
-
Notifications
You must be signed in to change notification settings - Fork 1
/
API_CHANGELOG
372 lines (293 loc) · 11 KB
/
API_CHANGELOG
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
AGAVI API CHANGELOG
===================
0.11.0 (November 3, 2007)
API Changes:
action/
CHG:
AgaviAction:
CHG:
! execute* & validate* & handleError: They now take the parameters (in form of an AgaviRequestDataHolder) as parameter and shouldn't access the request parameters directly anymore
execute & validate: its not required to define (execute|validate) anymore, but instead you can define execute(Read|Write|...) for each input method you want to handle
! getCredential: renamed to getCredentials()
! getDefaultView: renamed to getDefaultViewName()
ADD:
isSimple: return true to put an action into simple mode
REM:
! getRequestMethods: gone, this is now handled by the existance of (execute|validate)(Read|Write|...) methods
REM:
AgaviActionStack & AgaviActionStackEntry:
! superseded by AgaviExecutionContainer
config/
The entire config management has been adjusted to support different
configuration formats. The new AgaviConfigValueHolder class represenets a
tree like data structure which gets created by the parsers for the specific
configuration formats.
ADD:
AgaviConfig:
a new class for storing the configuration entries for the framework in a "registry"
AgaviConfigParser
a new class representing an abstract configuration parser
AgaviConfigValueHolder
a new class representing a configuration value (with attributes and childs or a value)
REM:
IniConfigHandler:
! is completely replaced by AgaviConfigHandler (which is independant of the config format)
AgaviParameterParser:
! removed, not needed anymore
CHG:
AgaviConfigCache:
ADD:
parseConfig: a new method to parse a configuration file with the parser defined for its extension
CHG:
checkConfig: a new optional string parameter for specifying the context
clearCache: the directory parameter is now optional
getCacheName: a new optional string parameter for specifying the context
! import: a string parameter specifying the the context as been inserted at position 2 (so once is now the 3. parameter)
AgaviConfigHandler:
ADD:
getValidationFile: a new method to retrieve the validation file path
getItemParameters: a new method to get the parameters entries of a configuration node
orderConfigurations: a new method to order the configuration blocks and taking environment and context parameters into account
CHG:
execute: has the context name as a new string parameter (defaults to null)
! initialize: now takes the new validation file path as the first parameter and the parameters as the second
! literalize: returns the php value now instead of a php "code" representation
! replaceConstants: doesn't return any constants anymore but instead values from the AgaviConfig registry
REM:
! addReplacement: removed
controller/
ADD:
AgaviExecutionContainer:
Replace action stacks, fully encapsulate action executions
AgaviOutputType:
Holds all information about an Output Type.
REM:
FrontWebController & PageWebController:
! removed, these cases are now handled by the general controller and the routing
CHG:
AgaviController:
ADD:
loadFilters: new method to load the filters into a filterchain
getGlobalResponse: new method
getOutputType: retrieves an AgaviOutputType instance
CHG:
dispatch: now already implemented here and takes parameters as parameter
actionExists: renamed to resolveAction, the action name is now optional and there is 'auto resolving' in place
initialize: new parameters argument
getAction / getView: now named createActionInstance / createViewInstance
REM:
forward: removed
! getGlobalModel & getModel: this is now handled by AgaviContext::getModel
! getInstance: removed, now handled via the AgaviContext instance
! newInstance: removed now handled via the AgaviContext instance
! registerShutdownListener: removed
! setExecutionFilterClassName: removed, this is now handled via the configuration
! inCLI: removed
! redirect: moved to AgaviResponse
AgaviWebController:
CHG:
initalize: now takes parameters as second parameter
REM:
! genUrl: removed, this is now done via AgaviRouting::gen()
getContentType: removed
setContentType: removed
core/
ADD:
Agavi:
new class for bootstrapping agavi
REM:
AgaviObject:
! removed, not needed anymore
CHG:
AgaviContext:
ADD:
getName: new method
getModel: moved from AgaviController
getLoggerManager: new method
getRouting: new method
getTranslationManager: new method
getFactoryInfo: new method
shutdown: new method
CHG:
! getInstance: if you don't pass the profile parameter you have to set core.default_context in config
! initialize: the overrides parameter is gone
REM:
! getActionName: removed
! getActionStack: removed
! getModuleDirectory: removed
! getModuleName: removed
! getSecurityFilter: removed
database/
All the database class names have been renamed to be proper camelcased (no more ...MySQL...)
AgaviDatabase:
getDatabaseManager: new method
! initialize: now takes the databasemanager as first parameter and the parameters as second (they were the only params)
AgaviDatabaseManager:
! initiliaze: now takes the context and optional parameters as parameter
date/
New as part of the i18n features, handles various date parsing and formatting things as well as calendars
exception/
AgaviException:
! getName: removed
! setName: removed
! printStackTrace: format parameter gone and 3 new parameters now
filter/
The filter handling has changed a little (there are different types of filters and interfaces for them)
BasicSecurityFilter:
! renamed to AgaviSecurityFilter
AgaviFilter:
! execute: now takes an AgaviResponse as additional parameter
SecurityFilter:
! is now an interface (AgaviISecurityFilter)
logging/
The logging levels are now bitmasks so they can be combined using binary or.
AgaviAppender:
! initialize: now takes an AgaviContext as first parameter and the parameters are now optional
getContext: new method
AgaviFileAppender:
! initialize: now takes an AgaviContext as first parameter and the parameters are now optional
! _getHandle: renamed to getHandle
AgaviLogger:
ALL: new class constant specifying all log levels
! setPriority: renamed to setLevel
AgaviLoggerManager:
! initialize: not static anymore, now takes an AgaviContext as first parameter and optional parameters as second parameter
getContext: new method
! getLogger: not static anymore
! getLoggerNames: not static anymore
! hasLogger: not static anymore
! removeLogger: not static anymore
! setLogger: not static anymore
! log: not static anymore
! shutdown: not static anymore
AgaviMailAppender:
! removed
AgaviMessage:
__construct: priority renamed to level
! setPriority: renamed to setLevel
! getPriority: renamed to getLevel
AgaviStderrAppender:
! initialize: now takes an AgaviContext as first parameter and the parameters are now optional
AgaviStdoutAppender:
! initialize: now takes an AgaviContext as first parameter and the parameters are now optional
model/
AgaviModel:
initialize: now takes parameters as optional second parameter
SingletonModel:
! removed, now handled by simply implementing AgaviISingletonModel
renderer/
All new :) (handles stuff previously handled by the view)
request/
ADD:
AgaviRequestDataHolder & AgaviWebRequestDataHolder:
Hold all request data - parameters, files, cookies, headers and so on
AgaviUploadedFile:
Represents an uploaded file
CHG:
HTTPSRequest:
! renamed to AgaviSecureWebRequest
AgaviRequest:
! all constants have been removed, these are now simply strings (read, write, ...), the error handling has been changed slightly
! does not contain any request data directly anymore, has a
ADD:
getContext: new method
toggleLock: new method
getRequestDataHolder: gets the global request data holder
CHG:
initialize: not abstract anymore
shutdown: not abstract anymore
! getMethod: returns string instead of int
! setMethod: takes a string instead of an int as parameter
REM:
! extractParameters: removed
! newInstance: removed now handled via the AgaviContext instance
! All error methods (getErrors(), hasError() and so on) moved into AgaviValidationManager
! All parameter/file/cookie accessors gone, now handled by request data holders
AgaviWebRequest:
ADD:
getUrlScheme: new method
getUrlHost: new method
getUrlPort: new method
getUrlAuthority: new method
getRequestUri: new method
getUrlPath: new method
getUrlQuery: new method
getUrl: new method
hasCookie: new method
REM:
! setCookie: moved to AgaviWebResponse
response/
New. Contains response data and sends it
translation/
New as part of the i18n features
user/
ADD:
AgaviISecurityUser: new interface for security user
AgaviRbacSecurityUser: new class
REM:
BasicSecurityUser: merged into AgaviSecurityUser
CHG:
AgaviUser:
ADD:
getStorageNamespace: new method
! newInstance: removed now handled via the AgaviContext instance
AgaviSecurityUser:
CHG:
! hasCredential: renamed to hasCredentials
util/
ADD:
AgaviArrayPathDefinition:
new class
AgaviAttributeHolder:
new class
AgaviDecimalFormatter:
new class
AgaviInflector:
new class
AgaviVirtualArrayPath:
new class
CHG:
AgaviParameterHolder:
CHG:
getParameter: now supports array syntax in the name
hasParameter: now supports array syntax in the name
AgaviToolkit:
ADD:
mkdir: new method
stringBase: new method
clearCache: new method
REM:
! extractClassName: removed
! isSubClass: removed
! classHeritage: removed
REM:
ConversionPattern
ShutdownListener
validation/
completely rewritten
view/
ADD:
AgaviTemplateLayer, AgaviStreamTemplateLayer & AgaviFileTemplateLayer
These handle template layering
CHG:
AgaviView:
! all constants have been removed, simply use the strings now
ADD:
getResponse: new method
CHG:
! execute: now takes the parameters as array
! initialize: takes optional attributes as second parameter
! setDecoratorTemplate: the template parameter shouldn't contain the file extension, added second parameter to reenable that behaviour
setSlot: new parameter to specify additional parameters to the slot
! setTemplate: the template parameter shouldn't contain the file extension, added second parameter to reenable that behaviour
REM:
! decorate: moved to AgaviRenderer
! getEngine: moved to AgaviRenderer
! importAttributes: removed
! preRenderCheck: moved to AgaviRenderer
! render: moved to AgaviRenderer
REM:
FormPHPView: removed
PHPView: moved to AgaviPhpRenderer
SmartyView: moved to AgaviSmartyRenderer
XSLView: moved to AgaviXslRenderer