0

我正在为我的公司启动新项目,它需要在一个域下托管多个应用程序。每个应用程序必须可由不同的子域(通配符)访问。其中一个应用程序将是所有子应用程序的控制面板。由于子应用程序的复杂性,创建一个多模块应用程序不是一种选择。

所有应用程序都必须共享公共库,并且可以访问某些特定于应用程序的库。

我仍在尝试设计允许将每个应用程序存储在公用文件夹之外的目录结构,通过子域动态访问它们并将一些文件分别存储在公用文件夹中。

到目前为止我发现了什么:

在公共外部的单独目录中使用默认 ZF 目录结构托管每个应用程序。可以通过插件从应用程序公共目录(女巫在域公共目录之外)将文件打印到浏览器来访问公共文件。唯一更改为默认 ZF 应用程序的是 public_html 中只有一个 index.php 文件,它基于子域启动请求的应用程序。

domain_dir/
    controllPanel_app/
        application/
            configs/
            modules/
            layouts/
            Bootstrap.php
        library/
        public/
    subApps/
        exampleSub_app/
            application/
            library/
            public/
        anotherExampleSub_app/
            application/
            ...
    common/
        library/
            Zend/
            Other/
    public_html/
        index.php

这是个好主意吗?

4

1 回答 1

0

你可以按照你建议的方式去做,但我认为这会比它的价值更麻烦。如果需要,Zend 框架是为模块设计的,但不是子应用程序。您可能最终会遇到 Zend Router 的噩梦,或者一些复杂.htaccess的诡计,这两者都很难维护。

为什么不为每个子域提供一个完全独立的 Zend Framework 应用程序,并为您的控制面板提供另一个单独的应用程序?您的公司(或您自己)应该能够重新配置您的 HTTP 服务器,以便每个子域都可以拥有自己的文档根。我是为我自己的公司这样做的,它也有类似的情况。(通用控制面板应用程序具有用于不同目的的不同面向公众的应用程序,以及具有共享代码的通用库。)

您可以通过多种方式共享公共库文件夹。一种是如果每个应用程序都将此文件夹添加到include_path每个应用程序index.phpBootstrap.php文件中的 PHP 中。这就是我喜欢这样做的方式。另一种方法是通过每个应用程序library文件夹中的符号链接。

于 2012-07-10T23:11:26.553 回答