Skip to content

Latest commit

 

History

History
56 lines (51 loc) · 8.58 KB

public-module-properties-directives.md

File metadata and controls

56 lines (51 loc) · 8.58 KB

Public Module Properties

Here is a listing of all public properties that can be defined in a module.

Property Type Required Default Description
title string false --- The title of the module
author string false --- The author of the module
webURL string false --- The web URL associated with this module. Maybe for documentation, blog, links, etc.
description string false --- A short description about the module
version string false --- The version of the module
viewParentLookup boolean false true If true, coldbox checks for views in the parent overrides first, then in the module. If false, coldbox checks for views in the module first, then the parent.
layoutParentLookup boolean false true If true, coldbox checks for layouts in the parent overrides first, then in the module. If false, coldbox checks for layouts in the module first, then the parent.
entryPoint route false --- The module's default route (ex:/forgebox) that ColdBox will use to create an entry point pattern link into the module. Similar to the default event setting. The SES interceptor will also use this to auto-register the module's routes if used by calling the method addModuleRoutes() for you.
inheritEntryPoint boolean false false If true, then the entrypoint will be constructed by looking at its parent hierarchy chain. This is a great way to build automated nesting schemas for APIs
activate boolean false true You can tell ColdBox to register the module but NOT to activate it. By default, all modules activate.
parseParentSettings boolean false true If true, ColdBox will merge any settings found in moduleSettings[ this.modelNamespace ] in the config/ColdBox.cfc file with the module settings, overriding them where the keys are the same. Otherwise, settings in the module will override the parent configuration.
aliases array false [] An array of names that can be used to execute the module instead of only the module folder name
autoMapModels boolean false true Will automatically map all model objects under the models folder in WireBox using @modulename as part of the alias.
autoProcessModels boolean false false If false, then all models will not be processed by WireBox metadata to improve performance. If true, then all object models will be inspected for metadata which can be time consuming.
cfmapping string false empty The ColdFusion mapping that should be registered for you that points to the root of the module.
disabled boolean false false You can manually disable a module from loading and registering
dependencies array false [] An array of dependent module names. All dependencies will be registered and activated FIRST before the module declaring them.
modelNamespace string false moduleName The name of the namespace to use when registering models in WireBox. By default it uses the name of the module.
applicationHelper array false [] An array of files from the module to load as application helper UDF mixins

Below you can see an example of declarations for the configuration object:

component{
    // Module Properties
    this.title      = "My Test Module";
    this.author       = "Luis Majano";
    this.webURL       = "http://www.coldbox.org";
    this.description    = "A funky test module";
    this.version      = "1.0.0";
    // If true, looks for views in the parent first, if not found, then in the module. Else vice-versa
    this.viewParentLookup   = true;
    // If true, looks for layouts in the parent first, if not found, then in module. Else vice-versa
    this.layoutParentLookup = true;
    // The module entry point using SES
    this.entryPoint     = "/testing";
    this.inheritEntryPoint = true;
    this.autoMapModels = true;
    this.autoProcessModels = false;
    this.modelNamespace = "store";
    this.aliases = [ "store", "ecommerce", "shop" ];
    this.cfmapping = "cbstore";
    this.parseParentSettings = true;
    this.dependencies = [ "JavaLoader", "CFCouchbase" ];
    this.applicationHelper = [ "includes/mixins.cfm" ]

    function configure(){
    }
}