我在ColdFusion中编码,但是试图留在cfscript中,所以我有一个函数允许我传入一个查询来运行它
<cfquery blah >
#query#
</cfquery>
但不知何故,当我构建查询sql = "SELECT * FROM a WHERE b='#c#'" 并将其传入时,ColdFusion已将单引号替换为2个单引号.所以它变成 WHERE b=''c''了最后的查询.
我尝试过很多不同的方法创建字符串,但我不能只留下一个引用.即使进行字符串替换也没有效果.
知道为什么会这样吗?在这个项目期间,它破坏了我在cfscript中生活的希望
所以,鉴于我有一个这个组件的实例:
foo.cfc
<cfcomponent>
<cffunction name="locateMe">
<cfreturn "I don't know where I live!">
</cffunction>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)
而且,这个其他组件,fooParent.cfc:
<cfcomponent>
<cfset this.foo = createObject("component", "foo")>
</cfcomponent>
Run Code Online (Sandbox Code Playgroud)
假设我用几种不同的方式创建"foo"的实例:
<cfset myStruct = {}>
<cfset myStruct.foo = createObject("component", "foo")>
<cfset myFoo = createObject("component", "foo")>
<cfset myFooParent = createObject("component", "fooParent")>
<cfoutput>
#myStruct.foo.locateMe()#<br>
#myFoo.locateMe()#<br>
#myFooParent.foo.locateMe()#<br>
</cfoutput>
Run Code Online (Sandbox Code Playgroud)
正如所料,这输出:
I don't know where I live!
I don't know where I live!
I don't know where I live!
Run Code Online (Sandbox Code Playgroud)
我想知道的是,我可以在foo.cfc中做些什么来告诉我关于它被调用的上下文的内容(任何事情!)?因为一切最终都存在于(至少)某种范围内,并且所有范围都是一种对象,我所说的是我真的想从某个给定的实例化对象中确定包含对象的某种方式.最后,从上面的示例代码片段构建foo.cfc的某种方式,以便这样的东西可以作为我的输出:
I live within a "class coldfusion.runtime.Struct" instance!
I live within a …Run Code Online (Sandbox Code Playgroud) 我一直在探索构建我的ColdFusion应用程序的不同方法,并且我正在寻找关于提供应用程序范围UDF的最佳方法的一些意见.
对于我的每个应用程序,我通常使用一些并不真正属于任何特定对象的额外函数.主要是数据操作.我希望这些功能在我的应用程序中可用,既可用于CFM模板,也可用于应用程序实例化的CFC.
我看到它的方式有各种方法来实现这一点,但它们都有自己的局限性:
在应用程序范围中实例化基本Utils CFC.这是我经常使用的方法.所有的功能都可以在应用程序范围内使用,但如果我从多个应用程序实例化相同的CFC,那么它们每个都有自己的应用程序范围 - 这意味着每个都必须实例化自己的基础Utils CFC.这没有什么不对,但感觉我没有足够好地封装CFC.我并不热衷于从CFC中引用应用程序范围.
创建一个基础Utils CFC并使其他所有CFC扩展它.这样可以正常工作,这意味着CFC可以直接从CFC的THIS范围引用Utils功能 - 但这意味着Utils功能保存在每个CFC的内存中.它在概念上也不合适,因为我的其他CFC与Utils CFC没有任何关系.
将我的基础Utils CFC注入我的其他CFC.我一直在玩的另一种方法是在Application范围中实例化我的基础Utils CFC,然后将其作为对象传递给我的其他CFC中的参数.这在概念上和我的封装中都适用.与我在init方法中设置数据源的方式相同,我可以对UDF执行相同的操作.这与UDF包含在每个CFC中的问题相同.当我转储所有的CFC时,我多次得到每个UDF - 但是当我传递一个实例化的对象时,我假设它没有占用任何额外的内存空间.如果有人能证实这一点,那会很有帮助 - 我只是假设!我对这种方法唯一真正的问题是它似乎有点复杂.
让我的应用程序CFC扩展我的Utils CFC.这就是许多框架似乎要做的事情.我没有使用过这种方法,但我确信它有利有弊.
CF直接在Application.cfc中从单独的模板中包含我的UDF这在功能上类似于在Application范围中实例化.
将我的UDF添加到服务器中Components.cfc
这是一个理论上的好主意 - 我可以维护基本Utils的一个副本,并确保服务器上的所有内容都可以访问它们 - 但是,如果我想在多个服务器上运行应用程序,那么它们都将全部需要那些功能.此外,对服务器的任何更新都可能会覆盖组件.它只是感觉像黑客核心 - 我敢肯定我们可以从苦涩的经历中得到所有,这很糟糕.
所以 - 我的问题是:以优雅和可重用的方式扩展CF与UDF的最佳实践是什么?以上任何选项或我没想过的东西?
编码cfqueryparam或cfprocparam时,cfsqltype是可选的.但是,我经常看到它编码.指定cfsqltype有什么好处吗?
哪些基于CFML的活动框架可用于ColdFusion/Lucee?
请注意:这是一个社区维基问答,因为这是一个非常多的问题.
我们刚刚开始寻找源代码控制系统.我意识到我们落后了,但迟到总比没有好.我们团队中的所有成员都没有过去任何系统的经验,所以我希望在我们开始研究不同的工具时能找到一些基本的东西.以下是我们团队的一些背景知识:
我们计划研究一些:
任何这些经历都有助于了解.
我想在OpenOffice Draw中创建一个流程图.
由于有很多步骤要显示(并且将来可能会有所改变),但我可以提取数据,我想通过以下步骤自动创建:
我不想花几个小时阅读一些"UNO"的东西 - 我只想要我可以根据需要调整的代码示例.
如果示例代码使用OO API,或者仅修改压缩模板中的XML文件,则不会感到困扰 - 只要它能让我轻松地完成上述操作.
我正在使用Railo(CFML),但我也可以使用Java,或者转换其他可读语言的片段.
有什么建议怎么办?
更新:
我已经开始使用XML路由了 - 我保存了一个空文件和一个带有单个对象的文件,并比较了两个(处理为拉链)以查看差异,然后重复几次,使用不同的更改来帮助了解发生了什么.
我有一些非常基本(和不完整)的代码,可以创建形状并连接它们,这可以在这里看到:http://gist.github.com/634306
这很粗糙,但我可能想办法利用我现在所拥有的东西生产我需要的东西 - 但我仍然希望有人能指出我更好的方法 - 特别是因为我会需要弄清楚一些适当定位形状的方法,这不会是微不足道的.
我为第四点创建了一个独特的问题:
如何在流程图上自动布局框?
更新2:
从另一个问题,我发现GraphViz可以从数据中可视化图形 - 我从我的数据中创建了一个'有向图' - 所以我需要的是一种将GraphViz的输出转换为OpenOffice Draw的方法可以接受.显而易见的是会有SVG,但似乎OpenOffice还没有正确实现SVG,所以我需要提出另一个计划.
我使用ColdFusion作为我的应用程序服务器和SQL Server用于数据库.我有一个列出了许多车辆的选择表单元素:Volvo S60,BMW M6,VW Jetta.
根据用户选择的车辆,我需要我的网页执行数据库查询,以找出他们选择的车辆类型,例如SUV,Coupe,Convertible.根据从数据库返回的"类型",数据库将返回适合该车辆类型的选项列表.我的数据库表可以根据车辆下拉值来做到这一点,这样一切都很好.
现在,我想现在列出该车辆"类型"的可用选项作为一组复选框.这样做应该是循环数据库结果集并为每一行生成一个复选框的简单情况.
我想这样做而不刷新页面.如何从下拉列表中动态获取值,将此值传递给数据库,返回结果然后显示相应的复选框?
我正在使用cfdocument在ColdFusion中创建PDF.我需要制作一个倾斜的标题行的表格,以便它全部适合页面.这是我想要完成的一个例子.
到目前为止,我找到的HTML或CSS示例都没有奏效.现在我想知道这是否是特定于ColdFusion和/或PDF创建的怪癖.我知道这段代码直接来自这里类似问题的答案,但它并没有在我的PDF中创建一个带有斜柱的表.它创造了这个.
//CSS
* {
box-sixing: border-box;
}
.outerDiv {
background: grey;
height: 200px;
width: 100px;
border: 1px solid black;
border-bottom: 0;
border-left: 0;
transform: skew(-30deg) translateX(58%);
}
th:first-child .outerDiv {
border-left: 1px solid black;
position: relative;
}
.innerDiv {
position: absolute;
width: 250px;
height: 85px;
bottom: -34%;
left: 10px;
transform: skew(30deg) rotate(-60deg);
transform-origin: 0 0;
text-align: left;
}
body,
html {
height: 100%;
}
body {
display: flex;
justify-content: center;
}
table {
border-collapse: collapse;
}
td {
border: …Run Code Online (Sandbox Code Playgroud) cfml ×10
coldfusion ×10
railo ×5
cfc ×2
java ×2
sql ×2
ajax ×1
asp.net ×1
coldfusion-9 ×1
css ×1
html-table ×1
javascript ×1
jquery ×1
lucee ×1
openbd ×1
pdf ×1
php ×1
string ×1