BoxLang 🚀 A New JVM Dynamic Language Learn More...
CFWheels Core
(v2.2.0)
Finally, a framework for the rest of us!
CFWheels is an open source CFML (ColdFusion Markup Language) framework inspired by Ruby on Rails that provides fast application development, a great organization system for your code, and is just plain fun to use. One of our biggest goals is for you to be able to get up and running with CFWheels quickly. We want for you to be able to learn it as rapidly as it is to write applications with it.
This package includes the core CFWheels directory and is used as a dependency by the core CFWheels templates.
You probably will never need to install this directory by itself but just incase you do you can install it using:
box install cfwheels
Typically this package is installed automatically by one of the CFWheels templates like this:
box install cfwheels-base-template
This command installs the base template which includes all the directories your applicaiton will need and then install this package as a dependency.
status
argument to all render*()
functions to force returning a specific HTTP status code #1025 - [Adam Chapman, Tom King]accessControlAllowOrigin
can now match subdomain wildcards #1031 - [Tom King]automaticValidations
argument to the property
method - [Per Djurner]findOneBy[Property]And[Property]
and findAllBy[Property]And[Property]
- [Per Djurner]value
argument in findOrCreateBy[Property]
- [Per Djurner]full null support
- [Michael Diederich]required
argument to imageTag
to suppress exceptions if using non-existent files #979 - [Adam Chapman, Michael Diederich]IN
operator #944 - [Adam Chapman, Per Djurner]validatesUniquenessOf
does not respect allowBlank #914 - [Adam Chapman]Wheels.RouteNotFound
Error page now escapes the arguments.path
to prevent XSS attacks - [Michael Diederich]buttonTo()
now uses <button>
internally instead of <input>
allowing for html in content - #798 - [Tom Sucaet, Tom King, Per Djurner]refresh
url parameter for auto refreshing test framework html - #986 - [Adam Chapman]/migrator/templates
directory - [Adam Chapman]http_x_forwarded_proto
to determine if the application is running behind a loadbalancer that is performing SSL offloading - [Peter Amiri]url
and params
arguments with redirectTo
- [Adam Chapman]set(flashStorage="none")
#978 [Tom King]processRequest()
accepts a route param -#1030 - [Adam Chapman]Controller.cfc
which caused multiple issues. The migrator, test runner and routing GUIs have therefore all been re-written._method
)addRecord()
and updateRecord()
calls - #852 [Charley Contreras]setUpdatedAtOnCreate, softDeleteProperty, timeStampMode, timeStampOnCreateProperty, timeStampOnUpdateProperty
) - #852 [Charley Contreras]MSSQL
now uses NVARCHAR(max)
instead of TEXT
#896 [Reuben Brown]allowExplicitTimestamps=true
argument - #887 - [Adam Chapman]set(flashAppend=true)
option allows for appending of a Flash key instead of replacing - #855 - [Tom King]flashMessages()
now checks for an array of strings or just a string and outputs appropriately - #855 - [Tom King]flashInsert()
can now accept a one dimensional array - #855 - [Tom King]OR
and AND
- #765 [Dmitry Yakhnov, Adam Chapman]handle
to a valid variable name so it doesn't break when using dot notation - #846 [Per Djurner]validatesUniquenessOf()
check now handles cases when duplicates already exist - #480 [Randall Meeker, Per Djurner]validatesConfirmationOf()
now has a caseSensitive
argument to optionally perform a case sensitive comparison - #918 [Tom King]sendFile()
no longer expands an already expanded directory on ACF2016 - #873 [David Paul Belanger, Tom King, strubenstein]usesLayout()
now can be called more than once and properly respects the order called - #891 [David Paul Belanger]Time
and Timestamp
Column Types - #906 [Reuben Brown]cacheFileChecking
to true
in development mode - [Adam Chapman, Steve Harvey]params._json
- #939 [Tom King]&lock=false
in the URL for when reload requests won't work due to locking - [Per Djurner]redirect
argument for GET/PUT/PATCH/POST/DELETE
- #847 - [Tom King].[format]
based routes can now be turned off in resources()
and resource()
via mapFormat=false
- #899 - [Tom King]mapFormat
can now be set as a default in mapper()
for all child resources()
and resource()
calls - #899 - [Tom King]HEAD
requests are now aliased to GET
requests #860 - [Tom King]includeFilters
argument to the processRequest
function for skipping execution of filters during controller unit tests - [Adam Chapman]useIndex
argument to finders for adding table index hints #864 - [Adam Chapman]GET
requests and must be performed via POST
#886 - [Tom King]Access-Control-Allow-Origin
can now be set either via a simple value or list in accessControlAllowOrigin()
#888 [Tom King]Access-Control-Allow-Methods
can now be set via accessControlAllowMethods(value)
#888 [Tom King]Access-Control-Allow-Credentials
can now be turned on via accessControlAllowCredentials(true)
; #888 [Tom King]accessControlAllowMethodsByRoute()
now allows for automatic matching of available methods for a route and sets CORS Header Access-Control-Allow-Methods
appropriately #888 [Tom King]accessControlAllowHeaders(value)
#888 [Tom King]authenticityToken()
function for returning the raw CSRF authenticity token #925 [Adam Chapman]enablePublicComponent
, enableMigratorComponent
,enablePluginsComponent
enviroment settings to completely disable those features #926 [Tom King]pluginRunner()
now removed in favour of 1.x plugin behaviour for performance purposes #916 [Core Team]validateTestPackageMetaData
environment setting for skipping test package validation on large test suites #950 [Adam Chapman]migrator.TableDefinition
functions to allow singular variant of the columnNames
property #922 [Sébastien FOCK CHOW THO]onAbort
is now supported via events/onabort.cfm
#962 [Brian Ramsey]dbname
in cfdbinfo
calls when using custom database connection string - #822 [Per Djurner]humanize()
function - #663 [Chris Peters, Per Djurner, kmd1970]rel
attribute for stylesheetlinkTag()
- #834 [Michael Diederich]NULL
value from a query with NULL support enabled no longer throws an error - #834 [Michael Diederich]encode="attributes"
to submitTag()
, buttonTag()
, paginationLinks()
, checkBoxTag()
, and checkBox()
- #816 [Per Djurner, Tom King]encode="attributes"
to date helpers - #818 [Per Djurner]createMigratorTable
) for creating migrations table - #796 [Adam Chapman, Per Djurner]belongsTo()
- #618 [Andy Bellenie, Chris Peters]allowCorsRequests
) for allowing CORS requests to go through - #623 [Chris Peters, David Belanger, Per Djurner, Tom King]buttonTo()
- #808 [Per Djurner, Tom King]buttonTo()
- #798 [Per Djurner]usesLayout()
in Controller.cfc
does not affect layout of internal CFWheels pages - #793 [Adam Chapman, Per Djurner]disableEngineCheck
setting).disableEngineCheck
setting).partial
and query
arguments to be set (if using a query)select=false
to property()
to not include a calculated property by default in SELECT clauses - #122 [Adam Chapman, Per Djurner]returnIncluded
argument in properties()
for returning nested properties - [Adam Chapman]updateProperty()
with dynamic argument, e.g. updateProperty(firstName="Per")
- [Per Djurner]update(transaction=false)
- #654 [Adam Chapman]isPersisted()
and propertyIsBlank()
methods - #559 [Chris Peters]timeStampMode
setting ("utc"
, "local"
or "epoch"
) for the createdAt
and updatedAt
columns - [Andy Bellenie]handle
argument to finders now set the variable name for the query so it's easier to find in the debug output - [Per Djurner]where
argument - #483 [Per Djurner]lowerCaseTableNames
, to always lower case table names in SQL statements - [Per Djurner]flashMessages()
are now in default layout.cfm - #650 [Tom King]textField()
, passwordField()
and hiddenField()
- #633 [Per Djurner, Chris Peters]method
argument in buttonTo()
helper - #761 [Adam Chapman]ram://
resources to sendFile()
- #566 [Tom King]sendMail()
so that it can return the text and/or html content of the email - #122 [Adam Chapman]renderWith()
can now set http status codes in header with the status
argument - #549 [Tom King]validatePresenceOf()
with default on update - [Andy Bellenie]box.json
files and are displayed in debug area #68 [Tom King]box.json
now available in application.wheels.pluginMeta
scope #68 [Tom King]http_x_forwarded_for
when doing maintenance mode exclusions - [Per Djurner]beforeAll()
, afterAll()
, packageSetup()
, packageTeardown()
methods to test framework #651 - [Adam Chapman]errorEmailFromAddress
and errorEmailToAddress
config settings - #95 [Andy Bellenie, Tony Petruzzi, Per Djurner]assert()
in tests - [Per Djurner]/app/
mapping pointing to the root of the application - [Per Djurner]processRequest()
function that simplifies testing controllers - [Per Djurner]design
mode - [Per Djurner]cacheRoutes
setting - [Per Djurner]cacheFileChecking
and cacheImages
settings are now turned off in development mode - [Per Djurner]includeErrorInEmailSubject
setting - [Per Djurner]allowEnvironmentSwitchViaUrl
- #766 [Tom King]events/functions.cfm
file has been moved to global/functions.cfm
.models/Model.cfc
file should extend wheels.Model
instead of Wheels
(models/Wheels.cfc
can be deleted).controllers/Controller.cfc
file should extend wheels.Controller
instead of Wheels
(controllers/Wheels.cfc
can be deleted).init
function of controllers and models should now be named config
instead.modelRequireInit
has been renamed to modelRequireConfig
.cacheControllerInitialization
has been renamed to cacheControllerConfig
.cacheModelInitialization
has been renamed to cacheModelConfig
.clearServerCache
has been renamed to clearTemplateCache
.updateProperties()
method has been removed, use update()
instead.mapper()
.confirm
and disable
have been removed from the link and form helper functions (use the JS Confirm and JS Disable plugins to reinstate the old behaviour).createdAt
, updatedAt
) is now in UTC by default (set the global timeStampMode
setting to local
to reinstate the old behaviour).where="x=''"
becomes where="x IS NULL"
).<img src="x">
instead of <img src="x" />
).encode
argument to mailTo
now encodes tag content and attributes instead of outputting JavaScript.field-with-errors
instead of fieldWithErrors
).renderPage
function has been renamed to renderView
.dbmigrate
is now named Migrator
autoMigrateDatabase
setting to enable.writeMigratorSQLFiles
to enableallowMigrationDown
to enable.datetimeoffset
data type to the Microsoft SQL Server adapter - [Danny Beard]imageTag()
- [Per Djurner]paginationLinks()
- [Per Djurner]afterFindCallbackLegacySupport
setting and made the new way introduced in Beta 1 the only way - #580 [Per Djurner]
$
box install [email protected]