只是好奇人们如何使用 Zend 处理 Multi-Tenancy (特别是目录结构、数据库、模块化、每个租户 View 等)。我自己还没有发现太多,有人吗?
最佳答案
这需要一些工作,但这是可行的。我不确定我的方法在多大程度上遵循 Multi-Tenancy 的最严格定义,但如果它能给您一些想法:
我安装了一个应用程序,它很大程度上遵循推荐的项目结构 ( http://framework.zend.com/manual/en/project-structure.project.html )。然后,我使用该应用程序为每个站点创建一个 ZF 应用程序。它们每个都包含一个到主应用程序的符号链接(symbolic link)(当前位于库文件夹中,尽管这可能会改变)。每个站点应用程序都使用主应用程序的 Bootstrap 类,但它们有自己的配置文件。
该应用程序包含大量模块,每个模块可能会也可能不会在每个站点上启用。我在 Bootstrap 中有一个 _initModules() 方法,它查询数据库以找出应该启用哪些模块。然后以正常方式引导它们。
可以向 Zend_View 添加额外的 View 路径(按顺序检查),因此站点将其自己的 View 路径添加到堆栈中。通过这种方式,站点可以轻松覆盖主应用程序中的 View 。还可以将特定于站点的模型目录添加到 include_path,这将允许站点覆盖应用程序模型,尽管我还没有发现需要这样做(并且可能会对性能产生影响)。
关于php - Zend 框架的 Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1423802/