我正在重新组织我的ColdFusion目录结构,并对有经验的CF开发人员如何组织较小的cffunction库感到好奇.
我并不像精心设计的组件(对象)一样好奇,因为我是关于我们随着时间的推移建立的许多小实用功能.
由于我不喜欢详细的语法,所以我只是将包含一堆常见cffunction的lib.cfm包含在内.我可以将它们重构为cfcs,我可以创建对象,以便在变量范围上有更好的隔离.
有一个更好的方法吗?
可信缓存缓存哪些文件扩展名?CFM和CFC是显而易见的,但CFR呢?是否有可信任缓存捕获的其他文件扩展名?
我知道/怀疑文件进入模板缓存的一些地方是:
cfm,cfml,cfc,多吗?)<cfinclude template="./some.css">)cfm更多?)cfm,还jar和tld?)cfc还有.net,com,java和web服务?)cfr可以使用cfcompile实用程序吗?)是否有其他标签与将内容添加到模板缓存中具有相同的效果?
我注意到当我调用之前包含的(cfinclude).cfm文件的函数时,此时发生的所有coldfusion导入(cfimport)都被遗忘了.这就像你没有进口任何东西.我发现这种非常奇怪的行为所以我已经将它隔离了,但结果保持不变,即使在coldfusion 10中也是如此.
我的设置:
/例
functions.cfm:
<cfscript>
function test(){
return "test";
}
</cfscript>
组件/ MyCFC.cfc:
component output="false"{}
index.cfm:
<cfscript>
include "functions.cfm";
import components.MyCFC;
foo = test();
bar = new MyCFC();
</cfscript>
此代码将抛出coldfusion错误:"找不到ColdFusion组件或接口MyCFC".当foo = test();移除或放置后bar = new MyCFC();,该代码将运行得很好.
如果在包含之前或之后放置导入并不重要.每当调用包含的函数时,都会忘记导入.
这是一个错误还是它应该以这种方式表现?
在coldfusion 9,0,0,251028和coldfusion 10,282462中进行了测试
我的cfimport在页面上工作,但我尝试将它移动到onRequestStart并且它不起作用.然后我尝试将它放入cfinclude一个文件夹中,但这不起作用.cfimport必须在页面上吗?
我遇到问题,我的ColdFusion代码返回"元素AUTHOR在FORM中未定义".每当我提交表格时 我已经尝试使用<cfparam>设置,comment.author但它也没有用.我对ColdFusion很新,所以任何推理评论都会很棒!
<cfparam name="form.submitted" default="0" />
<cfset blogPost = EntityLoad('BlogPost',url.id,true) />
<cfif form.submitted>
<cfset comment = EntityNew('BlogComment') />
<cfset comment.author = form.author />
<cfset comment.comment = form.comment />
<cfset comment.createdDateTime = now() />
<cfset blogPost.addComment(comment) />
<cfset EntitySave(blogPost) />
</cfif>
<cfimport taglib="customTags/" prefix="layout" />
<layout:page section="blog">
<!-- Content Start -->
<!--Card -->
<div id="content">
<div class="card-pattern">
<!-- blog -->
<div id="blog">
<div class="clr">
<div class="top-bg1">
<div class="top-left">
<div><h1>Blog</h1></div>
</div>
</div>
<div class="clr">
<div class="pat-bottomleft"> </div>
<div class="pat-bottomright"> </div> …Run Code Online (Sandbox Code Playgroud)