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


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

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

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

    数据库连接参数缓存文件夹
  • 日志文件夹
在Symfony1

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

我的问题是:

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

我同意Jurgis Gregov的观点。

你应该在你的web/app.php行修改:

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

:

$kernel = new AppKernel($_SERVER['HTTP_HOST'], false);
AppKernel的第一个参数是environment name

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

在这里你可以设置学说配置。

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

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

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