Symfony2:根据传入请求自定义数据库连接、缓存和日志文件夹

Symfony2: Customize database connection, cache and log folders, based on incoming request

我正在尝试构建一个多租户解决方案,使用现有的代码库,但使用隔离的数据库、缓存和日志文件。

一种有效的方法是根据传入的请求域名动态计算以下内容:

在 Symfony1.x 中,我可以通过创建自定义过滤器来做到这一点 class,但我不知道如何在 Symfony2 中做到这一点。

那么我的问题是:

我如何根据传入请求修改 symfon2 应用程序的上述参数?

我同意 Jurgis Gregov 的观点。

您应该在 web/app.php 行中更改:

$kernel = new AppKernel('prod', false);

至:

$kernel = new AppKernel($_SERVER['HTTP_HOST'], false);

AppKernel 的第一个参数是环境name

之后,您可以在 app/config 中创建一个新的配置文件,其名称为: config_名称.yml

哪里可以设置学说配置。

您的缓存将在文件夹中:app/cache/name

你的日志会在:app/logs/name.log(你也可以在config yml文件中设置登录路径)

我不知道是否有其他方法可以更改学说参数,但我知道您还可以通过覆盖方法更改日志和缓存文件夹: app/AppKernel.php 中的 getLogDir() 和 getCacheDir() 可以使用 REQUEST 来设置它。