Symfony1 如何为多个域配置Symfony 1.4项目?

Symfony1 如何为多个域配置Symfony 1.4项目?,symfony1,Symfony1,我们有一个在symfony 1.4框架下开发的网站。这个网站应该能够有多个域。每个域都有其特殊的主页和其他一切。实际上,域必须是每个操作的参数,根据它,操作从数据库获取数据并显示数据 例如,我们有一个关于我们的页面。我们将“关于我们”内容保存在“关于我们”表中。此表具有网站id。我们将网站信息保留在网站表中。假设: website (id, title, domain) about_us (id, content, website_id) 网站内容: (1, 'foo', 'http://ww

我们有一个在symfony 1.4框架下开发的网站。这个网站应该能够有多个域。每个域都有其特殊的主页和其他一切。实际上,域必须是每个操作的参数,根据它,操作从数据库获取数据并显示数据

例如,我们有一个关于我们的页面。我们将“关于我们”内容保存在“关于我们”表中。此表具有网站id。我们将网站信息保留在网站表中。假设:

website (id, title, domain)
about_us (id, content, website_id)
网站内容:

(1, 'foo', 'http://www.foo.com') and (2, 'bar', 'http://www.bar.com')
(1, 'some foo', 1) and (2, 'some bar', 2)
关于美国的内容:

(1, 'foo', 'http://www.foo.com') and (2, 'bar', 'http://www.bar.com')
(1, 'some foo', 1) and (2, 'some bar', 2)

问题是,我应该如何配置我的Symfony项目才能这样做?要获取域作为参数并在Symfony操作中使用它?

您可以创建自己的路由类来扩展sfRoute。此路由将向所有请求添加“域”参数:

//apps/frontend/lib/routing/myroute.class.php

class myRoute extends sfRoute
{

    public function matchesUrl($url, $context = array())
    {
        // first check if it is a valid route:
        if (false === $parameters = parent::matchesUrl($url, $context))
        {
           return false;
         }

        $domain = $context['host'];

        // add the $domain parameter:
        return array_merge(array(
            'domain' => $domain
            ), $parameters);
    }
}
Routing.yml(示例):

在您的操作中,您可以通过以下方式获得域:

 $request->getParameter('domain');

有很多方法可以做到这一点。 您可以扩展sfFrontWebController,并在dispatch()方法中添加额外的代码


另外,看一看a和。@j0k谢谢,我以前看过这个问题,但我的问题不同。谢谢!这正是我想要的