The latest stable release of Framework One is now available for download from github! The previous stable release is still available on that page.
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 in Application.cfc
- Controller calls can be queued up in setupApplication(), setupSession() and setupRequest() via the controller() API - doController() is officially deprecated
- populate() now works with CFCs that use generated setters or onMissingMethod() via the new trustKeys argument - and onPopulateError() 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() and redirect() can generate SES URLs via new FW/1 configuration settings: generateSES and SESOmitIndex
- buildURL() and redirect() 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

6 responses so far ↓
1 Dutch Rapley // Jun 11, 2010 at 11:26 AM
2 Dan Vega // Jun 11, 2010 at 11:45 AM
Sean - I know the reason why this is the way it is now but it would be really nice if you could just turn accessors=true and define a service
property BookService;
property AuthorService;
And have those services injected into the controller. Writing setters for every service you need is a PITA. Just a thought, thanks again!
3 Sean Corfield // Jun 11, 2010 at 11:52 AM
http://github.com/seancorfield/fw1/commits/master
@Dan, open an issue for that. Given that FW/1 2.0 will target CF9 / Railo 3.2 / OpenBD 1.4, I suspect that implementing that across all engines will be portable and so it's something worth considering for the 2.0 release.
4 Dan Vega // Jun 11, 2010 at 11:54 AM
5 Frank // Jun 21, 2010 at 1:46 AM
I noticed this when I had to change the defaultItem to something else when I changed the code in the controllers and services to cfscript and default for the function name is not allowed.
Frank
6 Sean Corfield // Jun 21, 2010 at 1:10 PM
Leave a Comment