Permalink
Fetching contributors…
Cannot retrieve contributors at this time
373 lines (293 sloc) 11 KB
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