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