如何在 CreateObject 参数中添加带点的路径
How to add path with dots in CreateObject Argument
我正在尝试从我的组件导入路径,但是一个文件夹有多个点,例如 board.event.calendar
。由于这是此代码库中的常规结构,我无法更改文件夹名称。我已经尝试了多种方法来在 CreatObject 参数中实现正确的路径,例如:
<cfset Event = CreateObject("Component", "path.to.'board.event.calendar'.Event") />
<cfset Event = CreateObject("Component", "path/to/'board.event.calendar'/Event") />
<cfset Event = CreateObject("Component", "path\to\'board.event.calendar'\Event") />
<cfset Event = CreateObject("Component", "path.to.board#chr(046)#event#chr(046)#calendar.Event") />
但到目前为止运气不好。我该如何管理?
CreateObject()
在您的路径中使用句点字符作为分隔符,并且不会接受无效字符,例如单引号(如上例所示)。
一种方法是创建一个映射,然后在您的路径中使用它。例如,如果您的应用程序的路径是 C:\dev\myapp\
,而您的日历 CFC 的路径在 C:\dev\myapp\calendar\
中,那么您可以在 application.cfc
文件中创建一个映射,如下所示:
this.mappings = {
"/app": "C:/dev/myapp/",
"/calendar: "C:/dev/myapp/calendar/"
}
(您也可以在 CF Administrator 中创建映射)
然后在创建组件时,您可以使用:
myComponent = createObject("app.calendar.event").init();
或
myComponent = createObject("calendar.event").init();
我正在尝试从我的组件导入路径,但是一个文件夹有多个点,例如 board.event.calendar
。由于这是此代码库中的常规结构,我无法更改文件夹名称。我已经尝试了多种方法来在 CreatObject 参数中实现正确的路径,例如:
<cfset Event = CreateObject("Component", "path.to.'board.event.calendar'.Event") />
<cfset Event = CreateObject("Component", "path/to/'board.event.calendar'/Event") />
<cfset Event = CreateObject("Component", "path\to\'board.event.calendar'\Event") />
<cfset Event = CreateObject("Component", "path.to.board#chr(046)#event#chr(046)#calendar.Event") />
但到目前为止运气不好。我该如何管理?
CreateObject()
在您的路径中使用句点字符作为分隔符,并且不会接受无效字符,例如单引号(如上例所示)。
一种方法是创建一个映射,然后在您的路径中使用它。例如,如果您的应用程序的路径是 C:\dev\myapp\
,而您的日历 CFC 的路径在 C:\dev\myapp\calendar\
中,那么您可以在 application.cfc
文件中创建一个映射,如下所示:
this.mappings = {
"/app": "C:/dev/myapp/",
"/calendar: "C:/dev/myapp/calendar/"
}
(您也可以在 CF Administrator 中创建映射)
然后在创建组件时,您可以使用:
myComponent = createObject("app.calendar.event").init();
或
myComponent = createObject("calendar.event").init();