We are so excited to bring a major version release of our Mementifier Module. For those of you who do not know what Mementifier is, here is a small synopsis.
What is Mementifier?
This module will transform your business objects into native ColdFusion (CFML) data structures with :rocket speed. It will inject itself into ORM objects and/or business objects alike and give them a nice getMemento()
function to transform their properties and relationships (state) into a consumable structure or array of structures. It can even detect ORM entities and you don't even have to write the default includes manually, it will auto-detect all properties. No more building transformations by hand! No more inconsistencies! No more repeating yourself! Best of all, it is lightning fast!
Defining Mementos
this.memento = { // An array of the properties/relationships to include by default defaultIncludes = [ "firstName", "lastName", // Relationships "role.roleName", "role.roleID", "permissions", "children" ], // An array of properties/relationships to exclude by default defaultExcludes = [], // An array of properties/relationships to NEVER include neverInclude = [ "password" ], // A struct of defaults for properties/relationships if they are null defaults = { "role" : {}, "office" : {} }, // A struct of mapping functions for properties/relationships that can transform them mappers = {} }
Getting Mementos
struct function getMemento( includes="", excludes="", struct mappers={}, struct defaults={}, boolean ignoreDefaults=false )
Release Notes
Here are the release notes for this major release:
Features
- Enabled wildcard default includes (*) to retrieve inherited object properties instead of doing wacky things for inherited defaults to work.
- New setting to chose a default value to expose when getters return
null
:nullDefaultValue
- ORM Auto includes now ONLY includes properties to avoid bi-directional recursive exceptions. This is also a compatiblity, where before EVERYTHING was included. Now, only properties are included.
Improvements
- Updated to cborm2 for testing harness
- Updated to TestBox 3
Compatibility
- Removed ACF 11 Support
- ORM Auto includes only marshalls properties instead of everything.
Add Your Comment