在客户端入口点是子域的多客户端场景中,我想知道是否可以将我的客户端分成基本上包含应用程序的目录(如缓存,配置,日志,内核),然后将符号链接返回到其余的(供应商,src和web)的“核心”Symfony目录。这让我可以保持应用程序与我的捆绑包统一,但为每个客户端提供了一个单独的配置。然后我将我的子域指向各自的目录。
从表面上看,它似乎很有希望,并且比我一直在考虑的其他方法更简单。 如果我想将客户端升级到版本2或添加组件,我可以切换捆绑包,甚至将符号链接指向一个全新的源。它也可能很好地扩展。 我也想知道使用这种方法是否允许我在客户端之间维护单独的安全上下文,而不是检查子域并重定向以在用户手动切换子域时进行身份验证。
下行将是多个配置文件的重复,并且更多涉及初始客户端设置(但在我看来,老实说没有坏事)。
Symfony2是否具有足够的灵活性来处理这种重新安排? 在多客户端应用程序中是否存在分离缓存的速度或安全性等好处? 在每个配置中使用单独的防火墙会为每个子域产生不同的安全上下文吗?
背景/补充信息:
我正在重新开发一个多客户端/租户的应用程序。我在重新设计中使用Symfony2,因为原始版本位于Doctrine之上,我现在需要更强大的框架功能。我想维护一个应用程序(它在所有客户端中都是相同的)并为每个客户端提供单独的数据库。我的期望是100-200个客户最大的现实(如果我过去,我会庆祝,然后担心它)。数据库之间的架构是相同的,我为了便于备份/恢复而分离,以及稍后的单独升级路径。
我花了很多时间阅读关于多重性的许多问题和答案。还有关于使用路由和内核侦听器来使用子域来收集客户端ID,然后动态选择数据库连接等等。我最终找到了blog post from Orm-designer.com outlining what they did when they moved their site to a new VPS。他们详细介绍了帖子中的目录结构,让我思考如何根据自己的目的调整概念。
答案 0 :(得分:0)
如果我理解你,你有:
你需要:
你需要:
每次您想要更新应用程序的版本时:
客户端文件夹:
Machine 1
SourceFolder
app
bin
src
Company
YourBundle
*Controller
Resources
config
*css
...
...
*vendor
web
带有*的目录是指向同一台计算机上多个客户端共享的文件夹的sym-links,其余目录是用户specyfic。