组件的自定义配置文件

Custom config file for components

我有兴趣创建一个 config.cfc,我想在不同的组件中使用它。

在 PHP 中可以创建一个 config.php 文件,它只是 return 一个数组。在其他 php 文件中,这可以像

use config.php

我可以简单地将 .cfm 文件包含在任何 .cfc 组件中吗? config.cfc 的 return 是一个结构?

我不确定如何回答你的问题,因为我不完全理解你想要完成的事情。在一个句子中,您需要 return 一个数组,而在另一个句子中,您需要 return 一个结构。如果你想创建一个 config.cfc 你的方法可以 return 任一数据类型(数组或结构)。

要回答您的其他问题,是的,您可以在 .cfc 中包含一个 .cfm 文件。我过去做过,虽然这不是最佳做法。

我的建议是,在您的 config.cfc 中创建任何需要的方法,然后在您的调用 .cfm.cfc 中使用 CreateObject() 来使用。

我见过几个使用 .cfm 文件作为配置文件的项目,它使用设置值设置 Coldfusion 结构变量。然后使用 cfinclude 将加载文件并设置一个配置变量(通常是一个结构)。它可以很容易地设置一个数组,尽管我认为结构会更灵活。代码中通常包含一次 cfinclude config.cfm 文件并将设置存储在应用程序范围内的逻辑。

另一种选择是使用包含相同内容但采用 JSON 格式的 .json 文件。这是一个开源项目的示例:

https://github.com/tonyjunkes/CFFormProtect-Revamp/blob/master/cfformprotect/config.json

控制代码读取文件并使用反序列化JSON() 将其转换为 ColdFusion 结构。由于它是开源的,您可以下载这个项目并确切地查看它是如何工作的。

是的,您可以从 .cfc 文件中 cfinclude .cfm。