2012-11-10 102 views
1

我明白这个问题可能是模糊的,我会尽我所能解释我的问题,并希望能够从经验丰富的人那里得到很多见解,并希望这不会被封闭。我应该如何构建我的应用程序?

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

我也有,以确保每个人进行插件升级操作时,它应该很容易遍历的“升级补丁”,同时仍然保留本地设置升级插件的设置列表。

我想我可以有哪些存储这样的地方,应用的具体plugins.yml文件:

pluginA: 
    somesettings: value 
    somesettings2: value2 

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

这听起来像一个很好的选择,或者如果有什么我应该看看?我如何能够轻松升级可覆盖的配置设置?如果您需要更多详细信息,请告诉我。

回答

1

在我看来,你正在寻找的东西,实际上核心Symfony允许做 - 我。即让其他用户覆盖/实现已经存在的包的自定义部分。 如果是的话,也许这个答案可以就如何实现这一目标使用ClassLoader组件(Symfony的2.0)或作曲一个好主意(Symfony的2.1):

How can I override Core Symfony2 Classes?

相关问题