FW/1 - The Invisible Framework

Framework One and friends...

FW/1 4.0 and Beyond

| Comments

Happy New Year and Welcome to 2016!

FW/1 3.5 has been out for a few months now and I want to talk about what’s coming this year. FW/1 4.0 is well under way and the themes are REST APIs and enhancements to DI/1. You can read the FW/1 4.0 change log here to see how much has been done so far. There are only a few issues left for 4.0 so we’re close to the first Alpha release at this point.

Why the 4.0 version? A major version number change indicates breaking changes. 4.0 drops support for Adobe ColdFusion 9.0.x because it relies on closures. Frankly, I’d like to drop support for Adobe ColdFusion 10 so I could rely on using member functions, but I feel it’s important to support two major versions. Just bear in mind that Raijin – ColdFusion 2016 – is coming and when that’s released, I will drop support for ACF10!

Aside from the minimum version support, FW/1 4.0 includes a (potentially) breaking change around property declarations: if a property includes a type or default, it will no longer be considered for injection. In FW/1 3.5, typed properties could be excluded if you specified omitTypedProperties : true. That is the default in 4.0 so you can still restore the earlier behavior. In addition, 4.0 now ignores defaulted properties but you can specify omitDefaultedProperties : false to override that new behavior.

The next planned version of FW/1 will be 4.5 – a fairly major release that will pave the way for 5.0, in the same way 2.5 paved the way for 3.0. In 5.0, the request lifecycle methods will move from Application.cfc (or your custom CFC that extends framework.one in the Alternative Application Structure) to a separate CFC, and subsystems will also be able to specify a request lifecycle with a subsystem.cfc – and subsystems with such a CFC will be eagerly loaded at application startup (whereas subsystems are lazily loaded today). In order to provide a smooth upgrade path, FW/1 4.5 will support most of those features but disabled by default and will provide warnings or throw exceptions if the behavior would change in 5.0.

As always, I want FW/1 to be driven by your needs so please raise issues on the mailing list or on GitHub so that your voices are heard and can drive future versions of one of CFML’s most popular MVC/DI/AOP frameworks!