1

我正在启动一个新应用程序,并希望专注于使其模块化。我的意思是,在我的脑海中,我设想了一些基本的设施登录、用户角色、布局等,但随后我希望能够添加自包含的功能“块”,例如文档存储库和上传,日记和提醒服务..随便。

到目前为止,我如何布置应用程序只是根目录中的所有内容,图像和 cfcs 的单独子文件夹,坚持变量和查询名称等的命名约定,通过 cfcs 进行所有数据库交互,在页面顶部进行所有处理,然后是注释行,然后在其下方显示/页面布局。

我已经尝试过并且未能了解那里的各种框架,但我只是因优柔寡断而瘫痪,并且对我是否“正确”地做它感到困惑。有没有一种工作方式可以在不涉及整个官方“框架”的情况下被接受为一种有用的方法?

4

3 回答 3

2

然后,您可能希望尽可能地将表示层与核心分开。一个很好且流行的方法是遵循 MVC(模型-视图-控制器)模式,并且速度非常快

http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller

这将允许您将功能调制到与布局等完全分离的控制器中。然后可以根据需要更轻松地将控制器集成到其他项目中。

我知道您说您不需要框架,并且您肯定不需要框架,但我强烈建议将其用于更大的应用程序,例如您所描述的。有些规则可能有很多规则,但它们似乎阻碍了很多。我喜欢的一个,它基于 Ruby on Rails,称为 CFWheel (http://cfwheels.org/)。

它几乎可以帮助您构建东西,您可以自由地遵循“正常”方式,否则它不会真正阻止您。看看这里的截屏视频:http: //cfwheels.org/screencasts

于 2010-09-26T23:56:56.200 回答
2

Model Glue 是一个优秀的 CF 框架。谷歌组支持 + 文档很棒。

FW/1 是另一个开始学习的更简单的框架,目前还不确定文档。

框架绝对是要走的路。一旦你绕过他们,他们就会觉得“正确”。它们往往会让你写出更好的代码,并且使用 Coldfusion 框架已经一年左右了,老实说,我永远不会回到不使用一个 8-)

于 2010-09-27T01:14:50.573 回答
1

老实说,这些框架很容易导致分析瘫痪。你很容易过度思考事情。这就是你要做的,保持简单,然后敲击键盘。使用您的“自己的”框架。它可能不漂亮,但你最终会得到它,你会明白为什么存在其他框架。

以下是您的开始方式:

创建文件夹布局和视图。将您所有的页面布局内容放在布局文件夹中(您可能只有几个甚至一个布局)!将您所有的视图内容放在视图文件夹中(这可能看起来像您对一堆组织不太好的文件所做的那样)。关键是您的视图文件中不会有任何页面处理“页面顶部”代码。

您的 index.cfm 将是唯一的 .cfm 根目录。使用 URL 变量 "event" = action 使您的框架运行。

在您的 index.cfm 中,使用一个巨大的 cfswitch 来确定要执行哪个“页面顶部”代码(这将是一个巨大的“控制器”)。

mysite.com/index.cfm?event=contactInfo

<cfswitch expression="#url.event#">
  <cfcase value="contactInfo">
    <top of page code>
    <cfset structLayoutInfo["pagetitle"] = "XYZ Contact Info" />
    <cfmodule template="/layouts/mainlayout.cfm" attributeCollection="#structLayoutInfo# >
      <cfinclude template="/views/contactInfo.cfm"/>
    </cfmodule>
   </cfcase>
  .....
</cfswitch>

将此与 cfmodule 标记结合使用以加载您的布局。因此,您的所有页面请求都通过 index.cfm 进入。Index.cfm 将完成所有页面顶部的内容,然后对视图文件夹中的适当视图执行 cfinclude。使用 cfmodule 标签来加载你的布局(查看 tag.execution 模式的页眉和页脚内容)。

您将继续向您的框架添加功能和功能。您可能会将 index.cfm 代码移动到一个控制器文件夹,其中包含一堆调用您的数据库 CFC 的 CFC。

于 2010-09-27T21:22:32.580 回答