The latest stable release of Framework One is now available for download from github! The previous stable release is still available on the tags page (download FW/1 1.0).
This release features a large number of enhancements suggested by the community including:
- A skeleton application
- The list of keys in
populate()
can contain spaces for improved readability - The delimiter for subsystems can be configured (the default is still
:
) - You can override the behavior when a view is missing by defining your own
onMissingView()
handler - The name of the application is automatically generated allowing you to omit
this.name
assignment inApplication.cfc
- Controller calls can be queued up in
setupApplication()
,setupSession()
andsetupRequest()
via thecontroller()
API -doController()
is officially deprecated populate()
now works with CFCs that use generated setters oronMissingMethod()
via the newtrustKeys
argument - andonPopulateError()
to trap any errors that arise- Sample applications now work on installations with a non-empty context root (except for a couple clearly marked as such)
- Skinning is possible via a new override point:
customizeViewOrLayoutPath()
- When you queue up
service()
calls, you can now provide a struct of additional arguments so you add arguments that are not in the request context - The list of extensions and file paths that are ignored by FW/1 is now configurable (so you can easily allow certain parts of your application to operate outside the framework)
- A new API
getConfig()
returns a readonly copy of the frameworkâs configuration structure which may be useful in controllers - You can now override the view conventions easily in a controller via the new
setView()
API - The action arguments is now consistently optional in all of the getters for subsystem / section / item combinations
- An example of security / access control with FW/1 has been added as a variant of the user manager
buildURL()
andredirect()
can generate SES URLs via new FW/1 configuration settings:generateSES
andSESOmitIndex
buildURL()
andredirect()
now all embedded query strings to make URL generation easier, as well as allowing control over which name/value pairs are folded into SES URLs vs regular query string format