对于人们如何使用Zend处理多租户感到好奇(特别是目录结构,数据库,模块化,每个租户视图等)。我自己找不到太多人了吗?
答案 0 :(得分:5)
这需要一点点工作,但它是可行的。我不确定我的方法遵循最严格的多租户定义,但是如果它给你一些想法:
我有一个应用程序的安装,它主要遵循推荐的项目结构(http://framework.zend.com/manual/en/project-structure.project.html)。然后我使用该应用程序为每个站点提供一个ZF应用程序。这些都包括主应用程序的符号链接(当前在库文件夹中,虽然这可能会改变)。站点应用程序每个都使用主应用程序的引导类,但它们有自己的配置文件。
该应用程序包含大量模块,每个模块可能在每个站点上启用,也可能不启用。我在引导程序中有一个_initModules()方法,它查询数据库以确定应该启用哪些模块。然后以正常方式引导它们。
可以将其他视图路径(按顺序检查)添加到Zend_View,以便站点将自己的视图路径添加到堆栈。这样,站点可以轻松覆盖主应用程序中的视图。还可以将一个特定于站点的模型目录添加到include_path,这将允许站点覆盖应用程序模型,尽管我还没有找到它的需要(并且可能会对性能产生影响)。