我的目录结构:
Com.Lib.db(所有数据库cfcs)
Com.Lib.search(所有搜索cfcs)
Com.Lib.utils(All utils cfcs)
如果我正在从webroot目录创建(db)目录的普通对象。
示例:
Createobject("component", "Com.Lib.db.mycfcA");
如果我在(db)目录中创建对象
实施例: Createobject(“component”,“mycfcA”);
这是正常情况。在我的例子中,我想创建一个从db目录到Utils OR Search的对象。当我试图给出完整的路径例如: 如果我在db目录中,尝试在(Utils)目录中创建myUtils.cfc的对象。
Createobject("component", "Com.Lib.Utils. myUtils");
答案 0 :(得分:3)
为了说明组件的相对路径查找,这里有一个例子:
您的网络应用程序就像:
/wwwroot/your-app/Application.cfc
/wwwroot/your-app/index.cfm
/wwwroot/your-app/images/example.jpg
您有一个虚拟主机(www.your-app.com
)指向:
/wwwroot/your-app/
这是你的根。 ColdFusion将/
物理上解析为/wwwroot/your-app/
(默认根映射)。
调用类似的组件:
createObject("component", "Com.Lib.Utils.myUtils")
现在将检查文件是否存在,即初始化组件:
/wwwroot/your-app/Com/Lib/Utils/myUtils.cfc
如果此结构中不存在CFC,则需要为它们定义自定义映射。
自定义映射在Application.cfc
的构造函数中定义。
因此,让我们假设您的CFC位于以下目录中:
/wwwroot/my-cfcs/Com/Lib/Utils/
现在,您将为它们创建一个映射,如:
<!--- Application.cfc --->
<cfcomponent>
<cfset THIS.mappings["utils"] = "/wwwroot/my-cfcs/Com/Lib/Utils/">
</cfcomponent>
要调用组件,您现在可以引用映射的组件路径,如:
createObject("component", "utils.myUtils")
这将检查文件是否存在,即初始化组件:
/wwwroot/my-cfcs/Com/Lib/Utils/myUtils.cfc