Symfony 2:如何以及在何处存储运行时设置文件


Symfony 2: How and where to store runtime settings file

我正在开发一个Symfony 2 WebApp,它使用PayPal Rest API来创建和接受PayPal付款。

为了能够将每个用户重定向到其语言的PayPal页面,必须为每种语言/区域设置创建一个体验配置文件。

每个Experience Profile只需创建一次。例如,创建US区域设置的配置文件后,可以使用同一区域设置的每个客户重新使用此配置文件:

  1. 客户在我的页面上输入他的地址并输入XY
  2. 我的页面检查XY区域设置的配置文件是否存在
  3. XY区域设置创建新的配置文件并将其存储或重复使用现有配置文件

每个配置文件都有一个唯一的 ID。 因此,我正在寻找一种存储区域设置/ID 对的方法。一个简单的解决方案是 JSON 文件。但是在Symfony结构中存储这个文件的什么地方呢?

每当来自新国家/地区的用户付款时,都会即时创建个人资料。因此,这些数据是在运行时创建的,因此它不属于我认为Symfony的标准config目录。我什至不知道这些文件夹是否应该由我的代码访问/写入。

所以:存储此类文件的正确位置是什么。

编辑:正如@JimL在评论中指出的那样,当然可以将数据存储在数据库中。但是,我正在处理的付款捆绑包应该用于不同的项目,因此尽可能与项目的其余部分分开。

这里的目标是将数据存储在文件中,而不是存储在数据库中。当然,数据库的效率要高得多,但在这种特殊情况下,一个简单的文件就足够了。

问题是:在哪里存储此文件?第一个想法是使用/MyBundle/Resources/config因为这个目录包含所有其他配置文件。但是,对于在运行时更改的文件,这是否也是正确的位置?

3.x的标准Symfony目录结构是:

.app/应用程序配置、模板和翻译。

.bin/可执行文件(例如.bin/控制台)。

来源/项目的 PHP 代码。

测试/自动测试(例如单元测试)。标准目录结构为:

var/生成的文件(缓存、日志等)。

供应商/第三方依赖项。

蹼/Web 根目录。

您可以将其放在自定义目录下的标准 var 目录中。请记住权限。

有关 var 目录的更多一般信息:http://www.linfo.org/var.html