Awesome
DI/1 is a simple convention-based dependency injection (inversion of control) framework. DI/1 is part of the FW/1 family of components. All development work occurs in that repo. This repo is provided purely as a convenience for users who want just DI/1 as a standalone component.
Usage
Initialize it with a comma-separated list of folders to scan for CFCs:
var beanfactor = new ioc("/model,/shared/services");
CFCs found in a folder called beans
are assumed to be transient. All other CFCs
are assumed to be singletons. This can be overridden via optional configuration.
DI/1 supports constructor injection, setter injection and property-based injection. All injection is done by name. If a bean name is unique, it can be used as-is, else the bean will have an alias which is the bean name followed by its immediate parent folder name, e.g.,
/model/beans/user.cfc will be "user" and "userBean"
/model/services/product.cfc will be "product" and "productService"
Folder names may be singular or plural. DI/1 assumes that if a folder name ends in "s" it can remove that to get the singular name.
See the DI/1 documentation for more details.