1

我知道这个问题可能很模糊,我会尽力解释我的问题,希望能从有经验的人那里得到很多见解,希望这不会被关闭。

我正在编写一个基于 Symfony 2 的组件和捆绑包的 PHP Web 应用程序框架,但是我的问题可能与此无关。该框架旨在对3rd 方插件开放,这些插件将有自己的配置文件 (yaml),安装这些插件的人应该能够在本地覆盖这些设置

我还必须确保每次执行插件升级操作时,应该很容易循环“升级补丁”列表以升级插件的设置,同时仍然保留本地设置

我想我可以有一个本地的、应用程序的特定 plugins.yml 文件,它存储如下内容:

pluginA:
  somesettings: value
  somesettings2: value2

此应用程序的特定设置文件将允许用户覆盖任何默认设置。然后每个插件可以包含一个“升级”类,该类将包含每个版本的所有补丁,框架将识别当前安装的路径,并循环遍历每个“升级补丁”并执行操作,直到它达到最新版本。

这听起来像是一个不错的选择,还是我应该考虑其他一些事情?如何轻松升级可以覆盖的配置设置?如果您需要更多详细信息,请告诉我。

4

1 回答 1

1

在我看来,您正在寻求实现一些 Symfony 核心允许做的事情——即让其他用户覆盖/实现已经存在的包的自定义部分。如果是这样,也许这个答案可以很好地说明如何使用 ClassLoader Component (Symfony 2.0) 或 Composer (Symfony 2.1) 来实现它:

如何覆盖 Core Symfony2 类?

于 2012-11-10T12:54:09.680 回答