2

只是好奇人们如何使用 Zend 处理多租户(特别是目录结构、数据库、模块化、每个租户视图等)。我自己也没发现太多,有人吗?

4

1 回答 1

5

这需要一点工作,但它是可行的。我不确定我的方法在多大程度上遵循多租户的最严格定义,但如果它给你一些想法:

我安装了一个应用程序,它在很大程度上遵循推荐的项目结构(http://framework.zend.com/manual/en/project-structure.project.html)。然后,我每个站点都有一个使用该应用程序的 ZF 应用程序。这些每个都包含一个指向主应用程序的符号链接(当前位于库文件夹中,尽管这可能会改变)。每个站点应用程序都使用主应用程序的引导类,但它们有自己的配置文件。

该应用程序包括大量模块,每个模块可能会或可能不会在每个站点上启用。我在引导程序中有一个 _initModules() 方法,它查询数据库以确定应该启用哪些模块。然后以正常方式引导这些。

可以向 Zend_View 添加额外的视图路径(按顺序检查),因此站点将自己的视图路径添加到堆栈中。通过这种方式,站点可以轻松覆盖主应用程序中的视图。也可以将特定于站点的模型目录添加到 include_path,这将允许站点覆盖应用程序模型,尽管我还没有发现需要这样做(并且可能会对性能产生影响)。

于 2009-09-16T18:30:02.020 回答