2012-01-27 45 views
1

这对任何建议都开放,并且想知道Zend Framework用户是否可以帮助我解决这个问题。大型多站点zend项目构想

我使用Zend框架构建了中型数据库驱动的网站,可以看到它是一个非常强大的框架。

然而,从查看与StackExchange.com一样大的东西,想知道如何使用zend实现一个多站点项目,并且能够创建一个'main'网站,该网站可以使用配置简单地复制并且可以持有不同的域名,但具有某些功能扩展。

我没有意思,复制网站和链接到相同的框架,但使用框架,扩展主要网站(stackexchange.com)有像功能的主要论坛,但创建一个完整的单独网站(它可以在需要时具有相同的功能或更多功能。

我问的原因是因为我没有印象,stackexchange开发人员每次都必须重建一个站点,我也不相信他们有79个站点副本,链接到一个或多个框架库。

如果任何堆栈溢出开发人员或zend极客可以摆脱这一点,我会是一个快乐的家伙。

谢谢!

+0

使用curl()从一个单独的网站获得结果,然后可以将其保存到变量中,并重新格式化为其他网站可能是一个选项。 – HenryGuy 2012-01-27 20:53:51

回答

1

可以通过使用hostname routes来实现服务多个(子)域的单个应用程序 - 不仅仅是Zend库的单个副本。

在DNS和虚拟主机级别,所有域映射到一个public文件夹。那里的.htaccess通过index.php推送所有请求。这index.php指向一个APPLICATION_PATH。在引导时,可以使用主机名路由来标识发出请求的域。带有routeShutdown()挂钩的前端控制器插件可以读取其他主机名特定的配置,并执行其他主机名特定的操作(例如,设置布局)。

+0

谢谢,这是我心中所想,但不知道如何去做。干杯。 – 2012-01-28 13:33:52

0

我相信模块化方法在这里最适合。

我认为David Weinraub在使用前端控制器routeshutdown() hook方面有一个很好的方法 - 我也会这样做,但是使用它来设置默认模块,例如, www.site1.com将查看site1模块的服务内容 - 这扩展了Core模块。

我最好安装在一个类似的方式向下面的应用程序:

|Project 
    |-Application 
     |-configs 
     |-controllers 
     |-models 
     |-modules 
      |-core 
      |-site1 
      |-site2 
      |-site3 
     |-views 
     |-Bootstrap.php 
    |-Docs 
    |-Library 
    |-Public 
    |-.zfproject.xml 

使用Core模块中,“子网站”将从Core模块扩展控制器,并提供你的功能寻找

'它可以在需要的地方具有相同的特征或更多。