0

会社の新しいプロジェクトを開始していますが、1 つのドメインで複数のアプリケーションをホストする必要があります。各アプリケーションは、異なるサブドメイン (ワイルドカード) でアクセスできる必要があります。アプリケーションの 1 つは、すべてのサブアプリのコントロール パネルになります。子アプリケーションは複雑であるため、1 つのマルチ モジュール アプリケーションを作成することはできません。

すべてのアプリケーションは、共通のライブラリを共有し、いくつかのアプリ固有のライブラリにアクセスできる必要があります。

各アプリケーションをパブリックフォルダーの外に保存し、サブドメインを介して動的にアクセスし、いくつかのファイルをそれぞれのパブリックフォルダーに個別に保存できるディレクトリ構造を設計しようとしています。

これまでにわかったこと:

各アプリケーションをデフォルトの ZF dir 構造でホストし、public 以外の別の dir に配置します。公開ファイルへのアクセスは、アプリの公開ディレクトリからブラウザーにファイルを出力するプラグインによって可能です (ウィッチはドメインの公開ディレクトリの外部にあります)。デフォルトの ZF アプリケーションへの唯一の変更点は、サブドメインに基づいて要求されたアプリケーションを開始する public_html に index.php ファイルが 1 つだけあることです。

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 Framework は、必要に応じてモジュール用に設計されていますが、サブアプリ用には設計されていません。おそらく、Zend Router の悪夢や複雑な.htaccess策略に遭遇することになるでしょう。どちらも維持するのが難しいでしょう。

サブドメインごとに完全に個別の Zend Framework アプリケーションを用意し、コントロール パネル用に別の個別のアプリを作成してみませんか? あなたの会社 (またはあなた自身) は、HTTP サーバーを再構成して、各サブドメインが独自のドキュメント ルートを持つことができるようにする必要があります。私は自分の会社でこれを行っていますが、同様の状況にあります。(共通のコントロール パネル アプリは、さまざまな目的で公開されているさまざまなアプリと共有コードの共通ライブラリを備えています。)

共通のライブラリ フォルダーは複数の方法で共有できます。include_path1 つは、各アプリがこのフォルダーを各アプリindex.phpまたはBootstrap.phpファイルのPHP に追加する場合です。これが私が好む方法です。もう 1 つの方法は、各アプリのlibraryフォルダー内のシンボリック リンクを使用することです。

于 2012-07-10T23:11:26.553 に答える