root/tags/0.11.1RC3/API_CHANGELOG

Revision 2182, 11.3 KB (checked in by david, 14 months ago)

err, nov3 actually (utc ftw)

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