这对任何建议都是开放的,并且想知道Zend Framework用户是否可以帮助我。
我使用Zend框架构建了中型数据库驱动的网站,可以看到它是一个非常强大的框架。
然而,通过查看像StackExchange.com这样大的东西,想知道如何使用zend实现多站点项目,能够创建一个“主”网站,可以使用配置简单地复制并保持在不同的域上,但扩展了某些功能。
我不是意思,复制网站并链接到同一个框架,但是使用框架,扩展主网站(stackexchange.com)以使主要论坛具有相似的功能但是要创建一个完整的独立网站(stackoverflow) .com)在需要的地方可以具有相同的功能。
我问的原因是因为我并不认为stackexchange开发人员每次都必须重建一个网站,我也不相信他们有79个网站副本,链接到一个或多个框架库。
如果任何堆栈溢出的开发人员或zend极客可能会对此有所了解,那我将是一个快乐的家伙。
谢谢!
答案 0 :(得分:1)
使用hostname routes可以实现单个应用程序 - 不仅仅是Zend库的单个副本 - 为多个(子)域提供服务。
在DNS和虚拟主机级别,所有域都映射到单个public
文件夹。 .htaccess
通过index.php
推送所有请求。此index.php
指向单个APPLICATION_PATH
。在引导程序中,主机名路由可用于标识发出请求的域。然后,带有routeShutdown()
挂钩的前端控制器插件可以读取其他特定于主机名的配置,并采取其他特定于主机名的操作(例如,设置布局)。
答案 1 :(得分:0)
我相信模块化方法在这里效果最好。
我认为David Weinraub在使用前端控制器routeshutdown()
钩子方面有一个很好的方法 - 我会做同样的事情,但是用它来设置默认模块,例如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
模块扩展控制器并提供您正在寻找的功能
'可以在必要时具有相同或更多功能。'